Package ghidra.app.context

# 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(String name, String owner)`
  Constructor for actions that can work on any Navigatable
  `NavigatableContextAction(String name, String owner, boolean supportsRestrictedAddressSetContext)`
  Constructor for specifying if that the context works on `RestrictedAddressSetContext`
  `NavigatableContextAction(String name, String owner, KeyBindingType type)`
  Constructor when using a non-standard `KeyBindingType`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `actionPerformed(ActionContext context)`
  method to actually perform the action logic for this action.
  `protected abstract 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)`
  `final 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.

  ### Methods inherited from class docking.action.DockingAction

  `addPropertyChangeListener, addToWindowWhen, createButton, createMenuItem, dispose, doCreateButton, doCreateMenuItem, enabledWhen, firePropertyChanged, getContextClass, getDefaultKeyBindingData, getDescription, getFullName, getHelpInfo, getHelpLocation, getHelpObject, getInceptionFromTheFirstClassThatIsNotUsOrABuilder, getInceptionInformation, getKeyBinding, getKeyBindingData, getKeyBindingType, getMenuBarData, getName, getOwner, getPopupMenuData, getPreferredKeyBindingType, getToolBarData, isEnabled, markHelpUnnecessary, popupWhen, removePropertyChangeListener, setAddToAllWindows, setContextClass, setDefaultKeyBindingData, setDescription, setEnabled, setHelpLocation, setKeyBindingData, setMenuBarData, setPopupMenuData, setToolBarData, setUnvalidatedKeyBindingData, shouldAddToWindow, supportsDefaultContext, toString, validContextWhen`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface docking.action.DockingActionIf

  `createMenuComponent, getOwnerDescription`

- ## Constructor Details

  - ### NavigatableContextAction

    public NavigatableContextAction(String name, String owner)
    Constructor for actions that can work on any Navigatable
    Parameters:
      `name` - the action's name
      `owner` - the action's owner

  - ### NavigatableContextAction

    public NavigatableContextAction(String name, String owner, boolean supportsRestrictedAddressSetContext)
    Constructor for specifying if that the context works on `RestrictedAddressSetContext`
    Parameters:
      `name` - the action's name
      `owner` - the action's owner
      `supportsRestrictedAddressSetContext` - true if this action can work on `RestrictedAddressSetContext`

  - ### NavigatableContextAction

    public NavigatableContextAction(String name, String owner, KeyBindingType type)
    Constructor when using a non-standard `KeyBindingType`
    Parameters:
      `name` - the action's name
      `owner` - the action's owner
      `type` - the KeybindingType

- ## Method Details

  - ### 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:

    1. when the user invokes the action via its keyBinding,
    2. the user changes focus from one component provider to another,
    3. the user moves a component to another position in the window or into another window,
    4. a component provider reports a change in it's context,
    5. any plugin or software component reports a general change in context (calls the tool.contextChanged(ComponentProvider) with a null parameter).
    The default implementation will simply return this action's enablement state.
    Specified by:
      `isEnabledForContext` in interface `DockingActionIf`
    Overrides:
      `isEnabledForContext` in class `DockingAction`
    Parameters:
      `context` - the current `ActionContext` 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 interface `DockingActionIf`
    Specified by:
      `actionPerformed` in class `DockingAction`
    Parameters:
      `context` - the `ActionContext` object that provides information about where and how this action was invoked.

  - ### isValidContext

    public final 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 interface `DockingActionIf`
    Overrides:
      `isValidContext` in class `DockingAction`
    Parameters:
      `context` - the `ActionContext` 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 popup `PopupMenuData` 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 the `DockingActionIf.isEnabledForContext(ActionContext)` method will return false, resulting in the action appearing in the popup menu, but begin disabled.

    Specified by:
      `isAddToPopup` in interface `DockingActionIf`
    Overrides:
      `isAddToPopup` in class `DockingAction`
    Parameters:
      `context` - the `ActionContext` from the active provider.
    Returns:
      true if this action is appropriate for the given context.

  - ### isEnabledForContext

    protected boolean isEnabledForContext(NavigatableActionContext context)

  - ### isAddToPopup

    protected boolean isAddToPopup(NavigatableActionContext context)

  - ### actionPerformed

    protected abstract void actionPerformed(NavigatableActionContext context)