Class NavigatableContextAction
- java.lang.Object
-
- docking.action.DockingAction
-
- ghidra.app.context.NavigatableContextAction
-
- All Implemented Interfaces:
DockingActionIf
,HelpDescriptor
- Direct Known Subclasses:
AbstractFindReferencesToAddressAction
,NextRangeAction
,PreviousRangeAction
public abstract class NavigatableContextAction extends DockingAction
-
-
Field Summary
-
Fields inherited from interface docking.action.DockingActionIf
DESCRIPTION_PROPERTY, ENABLEMENT_PROPERTY, GLOBALCONTEXT_PROPERTY, KEYBINDING_DATA_PROPERTY, MENUBAR_DATA_PROPERTY, POPUP_MENU_DATA_PROPERTY, TOOLBAR_DATA_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description NavigatableContextAction(java.lang.String name, java.lang.String owner)
NavigatableContextAction(java.lang.String name, java.lang.String owner, KeyBindingType type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(ActionContext context)
method to actually perform the action logic for this action.protected void
actionPerformed(NavigatableActionContext context)
boolean
isAddToPopup(ActionContext context)
method is used to determine if this action should be displayed on the current popup.protected boolean
isAddToPopup(NavigatableActionContext context)
boolean
isEnabledForContext(ActionContext context)
Method used to determine if this action should be enabled for the given context.protected boolean
isEnabledForContext(NavigatableActionContext context)
boolean
isValidContext(ActionContext context)
Method that actions implement to indicate if this action is valid (knows how to work with, is appropriate for) for the given context.protected boolean
isValidContext(NavigatableActionContext context)
boolean
shouldAddToWindow(boolean isMainWindow, java.util.Set<java.lang.Class<?>> contextTypes)
Default behavior is to add to main window;-
Methods inherited from class docking.action.DockingAction
addPropertyChangeListener, createButton, createMenuItem, dispose, doCreateButton, doCreateMenuItem, firePropertyChanged, getDefaultKeyBindingData, getDescription, getFullName, getHelpInfo, getHelpObject, getInceptionFromTheFirstClassThatIsNotUs, getInceptionInformation, getKeyBinding, getKeyBindingData, getKeyBindingType, getMenuBarData, getName, getOwner, getPopupMenuData, getPreferredKeyBindingType, getToolBarData, isEnabled, isValidGlobalContext, markHelpUnnecessary, removePropertyChangeListener, setDescription, setEnabled, setHelpLocation, setKeyBindingData, setMenuBarData, setPopupMenuData, setToolBarData, setUnvalidatedKeyBindingData, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface docking.action.DockingActionIf
getOwnerDescription
-
-
-
-
Constructor Detail
-
NavigatableContextAction
public NavigatableContextAction(java.lang.String name, java.lang.String owner)
-
NavigatableContextAction
public NavigatableContextAction(java.lang.String name, java.lang.String owner, KeyBindingType type)
-
-
Method Detail
-
isEnabledForContext
public boolean isEnabledForContext(ActionContext context)
Description copied from interface:DockingActionIf
Method used to determine if this action should be enabled for the given context.This is the method implementors override to control when the action may be used.
This method will be called by the DockingWindowManager for actions on the global menuBar and toolBar and for actions that have a keyBinding.
This method will be called whenever one of the following events occur:
- when the user invokes the action via its keyBinding,
- the user changes focus from one component provider to another,
- the user moves a component to another position in the window or into another window,
- a component provider reports a change in it's context,
- any plugin or software component reports a general change in context (calls the tool.contextChanged(ComponentProvider) with a null parameter).
- Specified by:
isEnabledForContext
in interfaceDockingActionIf
- Overrides:
isEnabledForContext
in classDockingAction
- Parameters:
context
- the currentActionContext
for the window.- Returns:
- true if the action should be enabled for the context or false otherwise.
-
actionPerformed
public void actionPerformed(ActionContext context)
Description copied from interface:DockingActionIf
method to actually perform the action logic for this action.- Specified by:
actionPerformed
in interfaceDockingActionIf
- Specified by:
actionPerformed
in classDockingAction
- Parameters:
context
- theActionContext
object that provides information about where and how this action was invoked.
-
isValidContext
public boolean isValidContext(ActionContext context)
Description copied from interface:DockingActionIf
Method that actions implement to indicate if this action is valid (knows how to work with, is appropriate for) for the given context. This method is used to determine if the action should be enabled based on the either the local context or the global context. The action is first asked if it is valid for the local context and if not, then it is asked if it is valid for the global context. If a context is valid, then it will then be asked if it is enabled for that context.- Specified by:
isValidContext
in interfaceDockingActionIf
- Overrides:
isValidContext
in classDockingAction
- Parameters:
context
- theActionContext
from the active provider.- Returns:
- true if this action is appropriate for the given context.
-
isAddToPopup
public boolean isAddToPopup(ActionContext context)
Description copied from interface:DockingActionIf
method is used to determine if this action should be displayed on the current popup. This method will only be called if the action has popupPopupMenuData
set.Generally, actions don't need to override this method as the default implementation will defer to the
DockingActionIf.isEnabledForContext(ActionContext)
, which will have the effect of adding the action to the popup only if it is enabled for a given context. By overriding this method, you can change this behavior so that the action will be added to the popup, even if it is disabled for the context, by having this method return true even if theDockingActionIf.isEnabledForContext(ActionContext)
method will return false, resulting in the action appearing in the popup menu, but begin disabled.- Specified by:
isAddToPopup
in interfaceDockingActionIf
- Overrides:
isAddToPopup
in classDockingAction
- Parameters:
context
- theActionContext
from the active provider.- Returns:
- true if this action is appropriate for the given context.
-
isValidContext
protected boolean isValidContext(NavigatableActionContext context)
-
isEnabledForContext
protected boolean isEnabledForContext(NavigatableActionContext context)
-
isAddToPopup
protected boolean isAddToPopup(NavigatableActionContext context)
-
actionPerformed
protected void actionPerformed(NavigatableActionContext context)
-
shouldAddToWindow
public boolean shouldAddToWindow(boolean isMainWindow, java.util.Set<java.lang.Class<?>> contextTypes)
Description copied from class:DockingAction
Default behavior is to add to main window;- Specified by:
shouldAddToWindow
in interfaceDockingActionIf
- Overrides:
shouldAddToWindow
in classDockingAction
- Parameters:
isMainWindow
- true if the window in question is the main window. Otherwise, the window is a secondary window.contextTypes
- a list of contextTypes (Classes) based on the providers that are currently in the window.- Returns:
- true if this action should be added to the window, false otherwise.
-
-