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:
  - `MultiStateDockingAction`

- ## 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
  `MultiActionDockingAction(String name, String owner)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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.
  `static DockingActionIf`
  `createSeparator()`
  `JButton`
  `doCreateButton()`
  `List<DockingActionIf>`
  `getActionList(ActionContext context)`
  `boolean`
  `isEnabledForContext(ActionContext context)`
  Method used to determine if this action should be enabled for the given context.
  `void`
  `setActions(List<DockingActionIf> actionList)`

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

  `addPropertyChangeListener, addToWindowWhen, createButton, createMenuItem, dispose, doCreateMenuItem, enabledWhen, firePropertyChanged, getContextClass, getDefaultKeyBindingData, getDescription, getFullName, getHelpInfo, getHelpLocation, getHelpObject, getInceptionFromTheFirstClassThatIsNotUsOrABuilder, getInceptionInformation, getKeyBinding, getKeyBindingData, getKeyBindingType, getMenuBarData, getName, getOwner, getPopupMenuData, getPreferredKeyBindingType, getToolBarData, isAddToPopup, isEnabled, isValidContext, markHelpUnnecessary, popupWhen, removePropertyChangeListener, setAddToAllWindows, setContextClass, 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

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