Package docking.menu

Class MultiActionDockingAction

java.lang.Object
docking.action.DockingAction
docking.menu.MultiActionDockingAction
All Implemented Interfaces:
DockingActionIf, MultiActionDockingActionIf, HelpDescriptor

public class MultiActionDockingAction extends DockingAction implements MultiActionDockingActionIf
A class that supports multiple sub-actions, as well as a primary action. This is useful for actions that perform navigation operations.

Clients may add actions to this class with the intention that they will be accessible to the user via a GUI; for example, from a popup menu.

Actions added must have menu bar data set.

This action has a drop-down button that shows a popup menu of all available actions for the user to execute.

If the user executes this action directly (by clicking the non-popup section of the button), then actionPerformed(ActionContext) will be called. By default, when the button is clicked, the popup menu is shown. To change this behavior, override actionPerformed(ActionContext). If an item of the popup menu is clicked, then the DockingAction.actionPerformed(ActionContext) method of the sub-action that was executed will be called.

See Also:
  • Constructor Details

    • MultiActionDockingAction

      public MultiActionDockingAction(String name, String owner)
  • Method Details

    • setActions

      public void setActions(List<DockingActionIf> actionList)
    • getActionList

      public List<DockingActionIf> getActionList(ActionContext context)
      Specified by:
      getActionList in interface MultiActionDockingActionIf
    • actionPerformed

      public void actionPerformed(ActionContext context)
      This method is called when the user clicks the button when this action is used as part of the default DockingAction framework. This is the callback to be overridden when the child wishes to respond to user button presses that are on the button and not the drop-down. The default behavior is to show the popup menu when the button is clicked.
      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.
    • doCreateButton

      public JButton doCreateButton()
      Overrides:
      doCreateButton in class DockingAction
    • createSeparator

      public static DockingActionIf createSeparator()
    • 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.