Class SharedStubKeyBindingAction

  • All Implemented Interfaces:
    DockingActionIf, HelpDescriptor, OptionsChangeListener

    public class SharedStubKeyBindingAction
    extends DockingAction
    implements OptionsChangeListener
    A stub action that allows key bindings to be edited through the key bindings options. This allows plugins to create actions that share keybindings without having to manage those keybindings themselves.

    Some ways this class is used:

    1. As a central action to manage key bindings for multiple actions from different clients (plugins) that are conceptually the same. When the plugins are loaded these actions get registered and are wired to listen to key binding changes to this stub.
    2. As a placeholder action to manage key bindings for actions that have not yet been registered and may not get registered during the lifetime of a single tool session. This can happen when a plugin has transient component providers that only get shown upon a user request. This stub allows the key binding for those actions to be managed, even if they do not get registered when the tool is shown.

    Clients should not be using this class directly.

    • Method Detail

      • optionsChanged

        public void optionsChanged​(ToolOptions options,
                                   java.lang.String optionName,
                                   java.lang.Object oldValue,
                                   java.lang.Object newValue)
        Description copied from interface: OptionsChangeListener
        Notification that an option changed.

        Note: to reject an options change, you can throw a OptionsVetoException.

        Specified by:
        optionsChanged in interface OptionsChangeListener
        Parameters:
        options - options object containing the property that changed
        optionName - name of option that changed
        oldValue - old value of the option
        newValue - new value of the option
      • 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

        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.