Package docking

# Class DockingActionProxy

java.lang.Object
docking.DockingActionProxy

All Implemented Interfaces:
  `DockingActionIf`, `MultiActionDockingActionIf`, `ToggleDockingActionIf`, `HelpDescriptor`, `PropertyChangeListener`, `EventListener`

public class DockingActionProxy extends Object implements ToggleDockingActionIf, MultiActionDockingActionIf, PropertyChangeListener

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

  ### Fields inherited from interface docking.action.ToggleDockingActionIf

  `SELECTED_STATE_PROPERTY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DockingActionProxy(DockingActionIf dockingAction)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `actionPerformed(ActionContext context)`
  method to actually perform the action logic for this action.
  `void`
  `addPropertyChangeListener(PropertyChangeListener listener)`
  Adds a listener to be notified if any property changes
  `JButton`
  `createButton()`
  Returns a JButton that is suitable for this action.
  `JMenuItem`
  `createMenuItem(boolean isPopup)`
  Returns a JMenuItem that is suitable for this action.
  `void`
  `dispose()`
  Called when the action's owner is removed from the tool
  `protected void`
  `firePropertyChanged(PropertyChangeEvent event)`
  `DockingActionIf`
  `getAction()`
  `List<DockingActionIf>`
  `getActionList(ActionContext context)`
  `Class<? extends ActionContext>`
  `getContextClass()`
  Returns the class of a specific action context that this action requires for it to operate.
  `KeyBindingData`
  `getDefaultKeyBindingData()`
  Returns the default `KeyBindingData` to be used to assign this action to a key binding.
  `String`
  `getDescription()`
  Returns a short description of this action.
  `String`
  `getFullName()`
  Returns the full name (the action name combined with the owner name)
  `String`
  `getHelpInfo()`
  Returns a descriptive String about the help object that this descriptor represents.
  `Object`
  `getHelpObject()`
  Returns the object for which help locations are defined.
  `String`
  `getInceptionInformation()`
  Returns a string that includes source file and line number information of where this action was created
  `KeyStroke`
  `getKeyBinding()`
  Convenience method for getting the keybinding for this action.
  `KeyBindingData`
  `getKeyBindingData()`
  Returns the `KeyBindingData` to be used to assign this action to a key binding.
  `KeyBindingType`
  `getKeyBindingType()`
  Returns this actions level of support for key binding accelerator keys
  `MenuData`
  `getMenuBarData()`
  Returns the `MenuData` to be used to put this action in the menu bar.
  `String`
  `getName()`
  Returns the name of the action
  `String`
  `getOwner()`
  Returns the owner of this action
  `MenuData`
  `getPopupMenuData()`
  Returns the `MenuData` to be used to put this action in a popup menu.
  `DockingActionIf`
  `getProxyAction()`
  `ToolBarData`
  `getToolBarData()`
  Returns the `ToolBarData` to be used to put this action in a toolbar.
  `boolean`
  `isAddToPopup(ActionContext context)`
  method is used to determine if this action should be displayed on the current popup.
  `boolean`
  `isEnabled()`
  Returns true if the action is enabled.
  `boolean`
  `isEnabledForContext(ActionContext context)`
  Method used to determine if this action should be enabled for the given context.
  `boolean`
  `isSelected()`
  Returns true if the toggle state for this action is current selected.
  `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.
  `void`
  `propertyChange(PropertyChangeEvent evt)`
  `void`
  `removePropertyChangeListener(PropertyChangeListener listener)`
  Removes a listener to be notified of property changes.
  `void`
  `setContextClass(Class<? extends ActionContext> type, boolean supportsDefaultContext)`
  Sets the specific action context class that this action works on and if the action supports default context.
  `void`
  `setEnabled(boolean newValue)`
  Enables or disables the action
  `void`
  `setKeyBindingData(KeyBindingData keyBindingData)`
  Sets the `KeyBindingData` on an action to either assign a keybinding or remove it (keyBindingData = null).
  `void`
  `setSelected(boolean newValue)`
  Sets the toggle state for this action.
  `void`
  `setUnvalidatedKeyBindingData(KeyBindingData newKeyBindingData)`
  Users creating actions should not call this method, but should instead call `DockingActionIf.setKeyBindingData(KeyBindingData)`.
  `boolean`
  `shouldAddToWindow(boolean isMainWindow, Set<Class<?>> contextTypes)`
  Determines whether this action should be added to a window (either the main window or a secondary detached window).
  `boolean`
  `supportsDefaultContext()`
  Returns true if this action also supports operating on a default context other then the active (focused) provider's context.
  `String`
  `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

  `createMenuComponent, getOwnerDescription`

- ## Constructor Details

  - ### DockingActionProxy

    public DockingActionProxy(DockingActionIf dockingAction)

- ## Method Details

  - ### getAction

    public DockingActionIf getAction()

  - ### 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`
    Parameters:
      `context` - the `ActionContext` object that provides information about where and how this action was invoked.

  - ### addPropertyChangeListener

    public void addPropertyChangeListener(PropertyChangeListener listener)
    Description copied from interface: `DockingActionIf`
    Adds a listener to be notified if any property changes
    Specified by:
      `addPropertyChangeListener` in interface `DockingActionIf`
    Parameters:
      `listener` - The property change listener that will be notified of property change events.
    See Also:
      - `Action.addPropertyChangeListener(java.beans.PropertyChangeListener)`

  - ### getDescription

    public String getDescription()
    Description copied from interface: `DockingActionIf`
    Returns a short description of this action. Generally used for a tooltip
    Specified by:
      `getDescription` in interface `DockingActionIf`
    Returns:
      the description

  - ### getFullName

    public String getFullName()
    Description copied from interface: `DockingActionIf`
    Returns the full name (the action name combined with the owner name)
    Specified by:
      `getFullName` in interface `DockingActionIf`
    Returns:
      the full name

  - ### getInceptionInformation

    public String getInceptionInformation()
    Description copied from interface: `DockingActionIf`
    Returns a string that includes source file and line number information of where this action was created
    Specified by:
      `getInceptionInformation` in interface `DockingActionIf`
    Returns:
      the inception information

  - ### getKeyBindingData

    public KeyBindingData getKeyBindingData()
    Description copied from interface: `DockingActionIf`
    Returns the `KeyBindingData` to be used to assign this action to a key binding. The KeyBindingData will be null if the action is not set to have a keyBinding.
    Specified by:
      `getKeyBindingData` in interface `DockingActionIf`
    Returns:
      the `KeyBindingData` for the action or null if the action does not have a keyBinding.

  - ### getDefaultKeyBindingData

    public KeyBindingData getDefaultKeyBindingData()
    Description copied from interface: `DockingActionIf`
    Returns the default `KeyBindingData` to be used to assign this action to a key binding. The KeyBindingData will be null if the action is not set to have a keyBinding. The value of this method is that which is set from a call to `DockingActionIf.setKeyBindingData(KeyBindingData)`.
    Specified by:
      `getDefaultKeyBindingData` in interface `DockingActionIf`
    Returns:
      the `KeyBindingData` for the action or null if the action does not have a keyBinding.

  - ### getMenuBarData

    public MenuData getMenuBarData()
    Description copied from interface: `DockingActionIf`
    Returns the `MenuData` to be used to put this action in the menu bar. The MenuData will be null if the action in not set to be in the menu bar.
    Specified by:
      `getMenuBarData` in interface `DockingActionIf`
    Returns:
      the `MenuData` for the menu bar or null if the action is not in the menu bar.

  - ### getName

    public String getName()
    Description copied from interface: `DockingActionIf`
    Returns the name of the action
    Specified by:
      `getName` in interface `DockingActionIf`
    Returns:
      the name

  - ### getOwner

    public String getOwner()
    Description copied from interface: `DockingActionIf`
    Returns the owner of this action
    Specified by:
      `getOwner` in interface `DockingActionIf`
    Returns:
      the owner

  - ### getPopupMenuData

    public MenuData getPopupMenuData()
    Description copied from interface: `DockingActionIf`
    Returns the `MenuData` to be used to put this action in a popup menu. The MenuData will be null if the action in not set to be in a popup menu.
    Specified by:
      `getPopupMenuData` in interface `DockingActionIf`
    Returns:
      the `MenuData` for a popup menu or null if the action is not to be in a popup menu.

  - ### getToolBarData

    public ToolBarData getToolBarData()
    Description copied from interface: `DockingActionIf`
    Returns the `ToolBarData` to be used to put this action in a toolbar. The ToolBarData will be null if the action in not set to be in a toolbar.
    Specified by:
      `getToolBarData` in interface `DockingActionIf`
    Returns:
      the `ToolBarData` for the popup menu or null if the action is not in a popup menu.

  - ### isEnabled

    public boolean isEnabled()
    Description copied from interface: `DockingActionIf`
    Returns true if the action is enabled.
    Specified by:
      `isEnabled` in interface `DockingActionIf`
    Returns:
      true if the action is enabled, false otherwise

  - ### 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`
    Parameters:
      `context` - the `ActionContext` from the active provider.
    Returns:
      true if this action is appropriate for the given context.

  - ### 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 interface `DockingActionIf`
    Parameters:
      `context` - the `ActionContext` from the active provider.
    Returns:
      true if this action is appropriate for the given context.

  - ### removePropertyChangeListener

    public void removePropertyChangeListener(PropertyChangeListener listener)
    Description copied from interface: `DockingActionIf`
    Removes a listener to be notified of property changes.
    Specified by:
      `removePropertyChangeListener` in interface `DockingActionIf`
    Parameters:
      `listener` - The property change listener that will be notified of property change events.
    See Also:
      - `DockingActionIf.addPropertyChangeListener(PropertyChangeListener)`
      - `Action.addPropertyChangeListener(java.beans.PropertyChangeListener)`

  - ### setEnabled

    public void setEnabled(boolean newValue)
    Description copied from interface: `DockingActionIf`
    Enables or disables the action
    Specified by:
      `setEnabled` in interface `DockingActionIf`
    Parameters:
      `newValue` - true to enable the action, false to disable it

  - ### propertyChange

    public void propertyChange(PropertyChangeEvent evt)
    Specified by:
      `propertyChange` in interface `PropertyChangeListener`

  - ### firePropertyChanged

    protected void firePropertyChanged(PropertyChangeEvent event)

  - ### getProxyAction

    public DockingActionIf getProxyAction()

  - ### isSelected

    public boolean isSelected()
    Description copied from interface: `ToggleDockingActionIf`
    Returns true if the toggle state for this action is current selected.
    Specified by:
      `isSelected` in interface `ToggleDockingActionIf`
    Returns:
      true if the toggle state for this action is current selected.

  - ### setSelected

    public void setSelected(boolean newValue)
    Description copied from interface: `ToggleDockingActionIf`
    Sets the toggle state for this action.
    Specified by:
      `setSelected` in interface `ToggleDockingActionIf`
    Parameters:
      `newValue` - the new toggle state.

  - ### getActionList

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

  - ### createButton

    public JButton createButton()
    Description copied from interface: `DockingActionIf`
    Returns a JButton that is suitable for this action. For example, It creates a ToggleButton if the action is a `ToggleDockingActionIf`.
    Specified by:
      `createButton` in interface `DockingActionIf`
    Returns:
      a JButton to be used in a toolbar or null if the action does not have ToolBarData set.

  - ### createMenuItem

    public JMenuItem createMenuItem(boolean isPopup)
    Description copied from interface: `DockingActionIf`
    Returns a JMenuItem that is suitable for this action. For example, if the action is a `ToggleDockingActionIf`, then a JCheckBoxMenuItem will be created.
    Specified by:
      `createMenuItem` in interface `DockingActionIf`
    Parameters:
      `isPopup` - true if the action should use its Popup MenuData, else it uses the MenuBar MenuData.
    Returns:
      a JMenuItem for placement in either the menu bar or a popup menu.

  - ### shouldAddToWindow

    public boolean shouldAddToWindow(boolean isMainWindow, Set<Class<?>> contextTypes)
    Description copied from interface: `DockingActionIf`
    Determines whether this action should be added to a window (either the main window or a secondary detached window). By default, this method will return true for the main window and false otherwise.
    Specified by:
      `shouldAddToWindow` in interface `DockingActionIf`
    Parameters:
      `isMainWindow` - true if the window in question is the main 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.

  - ### 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`
    Parameters:
      `context` - the current `ActionContext` for the window.
    Returns:
      true if the action should be enabled for the context or false otherwise.

  - ### getKeyBinding

    public KeyStroke getKeyBinding()
    Description copied from interface: `DockingActionIf`
    Convenience method for getting the keybinding for this action.
    Specified by:
      `getKeyBinding` in interface `DockingActionIf`
    Returns:
      the `KeyStroke` to be used as a keybinding for this action or null if there is no

  - ### getKeyBindingType

    public KeyBindingType getKeyBindingType()
    Description copied from interface: `DockingActionIf`
    Returns this actions level of support for key binding accelerator keys

    Actions support key bindings by default. Some reserved actions do not support key bindings, while others wish to share the same key bindings with multiple, equivalent actions (this allows the user to set one binding that works in many different contexts).

    Specified by:
      `getKeyBindingType` in interface `DockingActionIf`
    Returns:
      the key binding support

  - ### setKeyBindingData

    public void setKeyBindingData(KeyBindingData keyBindingData)
    Description copied from interface: `DockingActionIf`
    Sets the `KeyBindingData` on an action to either assign a keybinding or remove it (keyBindingData = null).
    Specified by:
      `setKeyBindingData` in interface `DockingActionIf`
    Parameters:
      `keyBindingData` - if non-null, assigns a keybinding to the action. Otherwise, removes any keybinding from the action.

  - ### setUnvalidatedKeyBindingData

    public void setUnvalidatedKeyBindingData(KeyBindingData newKeyBindingData)
    Description copied from interface: `DockingActionIf`
    Users creating actions should not call this method, but should instead call `DockingActionIf.setKeyBindingData(KeyBindingData)`.

    Call this method when you wish to bypass the validation of `DockingActionIf.setKeyBindingData(KeyBindingData)` so that keybindings are set exactly as they are given (such as when set by the user and not by the programmer).

    Specified by:
      `setUnvalidatedKeyBindingData` in interface `DockingActionIf`
    Parameters:
      `newKeyBindingData` - the KeyBindingData to be used to assign this action to a keybinding

  - ### dispose

    public void dispose()
    Description copied from interface: `DockingActionIf`
    Called when the action's owner is removed from the tool
    Specified by:
      `dispose` in interface `DockingActionIf`

  - ### getHelpInfo

    public String getHelpInfo()
    Description copied from interface: `HelpDescriptor`
    Returns a descriptive String about the help object that this descriptor represents.
    Specified by:
      `getHelpInfo` in interface `HelpDescriptor`
    Returns:
      the help info

  - ### getHelpObject

    public Object getHelpObject()
    Description copied from interface: `HelpDescriptor`
    Returns the object for which help locations are defined. This may be the implementor of this interface or some other delegate object.
    Specified by:
      `getHelpObject` in interface `HelpDescriptor`
    Returns:
      the help object

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### getContextClass

    public Class<? extends ActionContext> getContextClass()
    Description copied from interface: `DockingActionIf`
    Returns the class of a specific action context that this action requires for it to operate. See `ActionContext` for details on the action context system.
    Specified by:
      `getContextClass` in interface `DockingActionIf`
    Returns:
      the class of a specific action context that this action requires for it to operate

  - ### supportsDefaultContext

    public boolean supportsDefaultContext()
    Description copied from interface: `DockingActionIf`
    Returns true if this action also supports operating on a default context other then the active (focused) provider's context. See the class header for more details.
    Specified by:
      `supportsDefaultContext` in interface `DockingActionIf`
    Returns:
      true if this action also supports operating on a default context other then the active (focused) provider's context.

  - ### setContextClass

    public void setContextClass(Class<? extends ActionContext> type, boolean supportsDefaultContext)
    Description copied from interface: `DockingActionIf`
    Sets the specific action context class that this action works on and if the action supports default context. See `ActionContext` for details on how the action context system works.
    Specified by:
      `setContextClass` in interface `DockingActionIf`
    Parameters:
      `type` - the `ActionContext` class that this action works on.
      `supportsDefaultContext` - if true, then this action also support operating on a default context other than the active (focused) provider's context.