Class AbstractCyAction

java.lang.Object
javax.swing.AbstractAction
org.cytoscape.application.swing.AbstractCyAction
All Implemented Interfaces:
ActionListener, Serializable, Cloneable, EventListener, Action, MenuListener, PopupMenuListener, CyAction

public abstract class AbstractCyAction extends AbstractAction implements CyAction
An abstract implementation of the CyAction interface. Instead of using this class directly you should (strongly) consider implementing a TaskFactory/Task pair. Doing so will allow your action to be used outside of a Swing specific application (which the CyAction interface binds you to)!
See Also:

Cytoscape Backwards Compatibility (Abstract Class): This class is abstract and meant to be extended by users. This means that we may add methods for minor version updates. Methods will only be removed for major version updates.

Module: swing-application-api

To use this in your app, include the following dependency in your POM:

<dependency>
    <groupId>org.cytoscape</groupId>
    <artifactId>swing-application-api</artifactId>
</dependency>
  • Field Details

    • preferredMenu

      protected String preferredMenu
      The name describing the preferred menu for the action.
    • toolbarGravity

      protected float toolbarGravity
      The float value placing the action within the toolbar. Value of 0.0 is the beginning and -1.0 means to sort alphabetically. App developers are strongly encouraged to set specific gravities within your own menus.
    • acceleratorSet

      protected boolean acceleratorSet
      Indicates whether accelerator keys have been set for the action.
    • acceleratorKeyStroke

      protected KeyStroke acceleratorKeyStroke
      The accelerator keystroke, if set.
    • useCheckBoxMenuItem

      protected boolean useCheckBoxMenuItem
      Indicates whether to use a checkbox menu item.
    • useToggleButton

      protected boolean useToggleButton
      Indicates whether to use a toggle button in the tool bar.
    • inToolBar

      protected boolean inToolBar
      Indicates whether the action is in the main toolbar.
    • inNodeTableToolBar

      protected boolean inNodeTableToolBar
      Indicates whether the action is in the Node Table Panel's toolbar.
    • inEdgeTableToolBar

      protected boolean inEdgeTableToolBar
      Indicates whether the action is in the Edge Table Panel's toolbar.
    • inNetworkTableToolBar

      protected boolean inNetworkTableToolBar
      Indicates whether the action is in the Network Table Panel's toolbar.
    • inUnassignedTableToolBar

      protected boolean inUnassignedTableToolBar
      Indicates whether the action is in the Unassigned Tables Panel's toolbar.
    • inMenuBar

      protected boolean inMenuBar
      Indicates whether the action is in a menu.
    • insertSeparatorBefore

      protected boolean insertSeparatorBefore
      Indicates whether a menu separator should be inserted before this item
    • insertSeparatorAfter

      protected boolean insertSeparatorAfter
      Indicates whether a menu separator should be inserted after this item
    • insertToolbarSeparatorBefore

      protected boolean insertToolbarSeparatorBefore
      Indicates whether a toolbar separator should be inserted before this item
    • insertToolbarSeparatorAfter

      protected boolean insertToolbarSeparatorAfter
      Indicates whether a toolbar separator should be inserted after this item
    • name

      protected String name
      The name of the action.
    • toolTipImage

      protected URL toolTipImage
      Path to an optional tool tip image
    • configurationProperties

      protected Map<String,String> configurationProperties
      The configuration properties. Adding it here allows extensions of this class to pass their own properties.
  • Constructor Details

    • AbstractCyAction

      public AbstractCyAction(String name)
      Creates a new AbstractCyAction object that is always enabled.
      Parameters:
      name - The name of the action.
    • AbstractCyAction

      public AbstractCyAction(String name, CyApplicationManager applicationManager, String enableFor, CyNetworkViewManager networkViewManager)
      Creates a new AbstractCyAction object that is enabled for the specific "enableFor" state.
      Parameters:
      name - The name of the action.
      applicationManager - The application manager providing context for this action.
      enableFor - A string declaring which states this action should be enabled for.
      networkViewManager - The network view manager that provides context for this action.
    • AbstractCyAction

      public AbstractCyAction(Map<String,String> configProps, CyApplicationManager applicationManager, CyNetworkViewManager networkViewManager)
      Creates a new AbstractCyAction object.
      Parameters:
      configProps - A String-String Map of configuration metadata. This will usually be the Map provided by the OSGi service configuration. Available configuration keys include (see ServiceProperties):
      • title - The title of the menu.
      • preferredMenu - The preferred menu for the action.
      • largeIconURL - The icon to be used for the toolbar.
      • smallIconURL - The icon to be used for the menu.
      • tooltip - The toolbar or menu tooltip.
      • inToolBar - Whether the action should be in the toolbar.
      • inNodeTableToolBar - Whether the action should be in the Node Table Panel's toolbar.
      • inEdgeTableToolBar - Whether the action should be in the Edge Table Panel's toolbar.
      • inNetworkTableToolBar - Whether the action should be in the Network Table Panel's toolbar.
      • inUnassignedTableToolBar - Whether the action should be in the Unassigned Tables Panel's toolbar.
      • inMenuBar - Whether the action should be in a menu.
      • insertSeparatorBefore - Whether a separator should be inserted before this menu item.
      • insertSeparatorAfter - Whether a separator should be inserted after this menu item.
      • insertToolbarSeparatorBefore - Whether a separator should be inserted before this toolbar item.
      • insertToolbarSeparatorAfter - Whether a separator should be inserted after this toolbar item.
      • enableFor - Will only use this value if the TaskFactory is not a TaskFactoryPredicate! See ActionEnableSupport for more detail.
      • accelerator - Accelerator key bindings.
      • menuGravity - Float value with 0.0 representing the top and larger values moving towards the bottom of the menu.
      • toolBarGravity - Float value with 0.0 representing the top and larger values moving towards the bottom of the toolbar.
      applicationManager - The application manager providing context for this action.
    • AbstractCyAction

      public AbstractCyAction(Map<String,String> configProps, TaskFactory predicate)
      Creates a new AbstractCyAction object.
      Parameters:
      configProps - A String-String Map of configuration metadata. This will usually be the Map provided by the OSGi service configuration. Available configuration keys include (see ServiceProperties):
      • title - The title of the menu.
      • preferredMenu - The preferred menu for the action.
      • largeIconURL - The icon to be used for the toolbar.
      • smallIconURL - The icon to be used for the menu.
      • tooltip - The toolbar or menu tooltip.
      • inToolBar - Whether the action should be in the toolbar.
      • inNodeTableToolBar - Whether the action should be in the Node Table Panel's toolbar.
      • inEdgeTableToolBar - Whether the action should be in the Edge Table Panel's toolbar.
      • inNetworkTableToolBar - Whether the action should be in the Network Table Panel's toolbar.
      • inUnassignedTableToolBar - Whether the action should be in the Unassigned Tables Panel's toolbar.
      • inMenuBar - Whether the action should be in a menu.
      • insertSeparatorBefore - Whether a separator should be inserted before this menu item.
      • insertSeparatorAfter - Whether a separator should be inserted after this menu item.
      • insertToolbarSeparatorBefore - Whether a separator should be inserted before this toolbar item.
      • insertToolbarSeparatorAfter - Whether a separator should be inserted after this toolbar item.
      • enableFor - Will only use this value if the TaskFactory is not a TaskFactoryPredicate! See ActionEnableSupport for more detail.
      • accelerator - Accelerator key bindings.
      • menuGravity - Float value with 0.0 representing the top and larger values moving towards the bottom of the menu.
      • toolBarGravity - Float value with 0.0 representing the top and larger values moving towards the bottom of the toolbar.
      predicate - The task factory predicate that indicates whether or not this action should be enabled.
    • AbstractCyAction

      public AbstractCyAction(Map<String,String> configProps, CyApplicationManager applicationManager, CyNetworkViewManager networkViewManager, TaskFactory factory)
      Creates a new AbstractCyAction object.
      Parameters:
      configProps - A String-String Map of configuration metadata. This will usually be the Map provided by the OSGi service configuration. Available configuration keys include (see ServiceProperties):
      • title - The title of the menu.
      • preferredMenu - The preferred menu for the action.
      • largeIconURL - The icon to be used for the toolbar.
      • smallIconURL - The icon to be used for the menu.
      • tooltip - The toolbar or menu tooltip.
      • inToolBar - Whether the action should be in the toolbar.
      • inNodeTableToolBar - Whether the action should be in the Node Table Panel's toolbar.
      • inEdgeTableToolBar - Whether the action should be in the Edge Table Panel's toolbar.
      • inNetworkTableToolBar - Whether the action should be in the Network Table Panel's toolbar.
      • inUnassignedTableToolBar - Whether the action should be in the Unassigned Tables Panel's toolbar.
      • inMenuBar - Whether the action should be in a menu.
      • insertSeparatorBefore - Whether a separator should be inserted before this menu item.
      • insertSeparatorAfter - Whether a separator should be inserted after this menu item.
      • insertToolbarSeparatorBefore - Whether a separator should be inserted before this toolbar item.
      • insertToolbarSeparatorAfter - Whether a separator should be inserted after this toolbar item.
      • enableFor - Will only use this value if the TaskFactory is not a TaskFactoryPredicate! See ActionEnableSupport for more detail.
      • accelerator - Accelerator key bindings.
      • menuGravity - Float value with 0.0 representing the top and larger values moving towards the bottom of the menu.
      • toolBarGravity - Float value with 0.0 representing the top and larger values moving towards the bottom of the toolbar.
      applicationManager - The application manager providing context for this action.
      factory - The task factory that may or may not be a TaskFactoryPredicate. If it is a predicate, it will be used to indicate whether or not this action should be enabled. This TaskFactory is not used by the AbstractCyAction in any other way. Any execution of tasks from this TaskFactory must be handled by a subclass.
  • Method Details

    • setName

      public void setName(String name)
      Sets the name of the action.
      Parameters:
      name - The name of the action.
    • getName

      public String getName()
      Description copied from interface: CyAction
      Returns the name of the action.
      Specified by:
      getName in interface CyAction
      Returns:
      the name of the action.
    • getToolTipImage

      public URL getToolTipImage()
      Description copied from interface: CyAction
      Optional image to be displayed in the target component's tool tip.
      Specified by:
      getToolTipImage in interface CyAction
    • isInMenuBar

      public boolean isInMenuBar()
      By default all CytoscapeActions wish to be included in the menu bar at the 'preferredMenuName' location is specified and the 'Tools' menu not.
      Specified by:
      isInMenuBar in interface CyAction
      Returns:
      true if this CyAction should be included in menu bar.
    • setIsInMenuBar

      public void setIsInMenuBar(boolean b)
      Description copied from interface: CyAction
      To support configurable menus and tools, setIsInMenuBar added for 3.6
      Specified by:
      setIsInMenuBar in interface CyAction
    • isInToolBar

      public boolean isInToolBar()
      By default no CytoscapeActions will be included in the toolbar.
      Specified by:
      isInToolBar in interface CyAction
      Returns:
      true if this Action should be included in the toolbar.
    • setIsInToolBar

      public void setIsInToolBar(boolean b)
      Description copied from interface: CyAction
      To support configurable menus and tools, setIsInToolBar added for 3.6
      Specified by:
      setIsInToolBar in interface CyAction
    • isInNodeTableToolBar

      public boolean isInNodeTableToolBar()
      Description copied from interface: CyAction
      Returns whether the action should be in the Node Table Panel's tool bar.
      Specified by:
      isInNodeTableToolBar in interface CyAction
      Returns:
      true if the action should be in the Node Table Panel's tool bar.
    • setIsInNodeTableToolBar

      public void setIsInNodeTableToolBar(boolean b)
      Description copied from interface: CyAction
      To support configurable menus and tools, added for 3.9
      Specified by:
      setIsInNodeTableToolBar in interface CyAction
    • isInEdgeTableToolBar

      public boolean isInEdgeTableToolBar()
      Description copied from interface: CyAction
      Returns whether the action should be in the Edge Table Panel's tool bar.
      Specified by:
      isInEdgeTableToolBar in interface CyAction
      Returns:
      true if the action should be in the Edge Table Panel's tool bar.
    • setIsInEdgeTableToolBar

      public void setIsInEdgeTableToolBar(boolean b)
      Description copied from interface: CyAction
      To support configurable menus and tools, added for 3.9
      Specified by:
      setIsInEdgeTableToolBar in interface CyAction
    • isInNetworkTableToolBar

      public boolean isInNetworkTableToolBar()
      Description copied from interface: CyAction
      Returns whether the action should be in the Network Table Panel's tool bar.
      Specified by:
      isInNetworkTableToolBar in interface CyAction
      Returns:
      true if the action should be in the Network Table Panel's tool bar.
    • setIsInNetworkTableToolBar

      public void setIsInNetworkTableToolBar(boolean b)
      Description copied from interface: CyAction
      To support configurable menus and tools, added for 3.9
      Specified by:
      setIsInNetworkTableToolBar in interface CyAction
    • isInUnassignedTableToolBar

      public boolean isInUnassignedTableToolBar()
      Description copied from interface: CyAction
      Returns whether the action should be in the Unassigned Tables Panel's tool bar.
      Specified by:
      isInUnassignedTableToolBar in interface CyAction
      Returns:
      true if the action should be in the Unassigned Tables Panel's tool bar.
    • setIsInUnassignedTableToolBar

      public void setIsInUnassignedTableToolBar(boolean b)
      Description copied from interface: CyAction
      To support configurable menus and tools, added for 3.9
      Specified by:
      setIsInUnassignedTableToolBar in interface CyAction
    • insertSeparatorBefore

      public boolean insertSeparatorBefore()
      Insert a separator before this menu item.
      Specified by:
      insertSeparatorBefore in interface CyAction
      Returns:
      true if this Action should have a separator before it
    • insertSeparatorAfter

      public boolean insertSeparatorAfter()
      Insert a separator after this menu item.
      Specified by:
      insertSeparatorAfter in interface CyAction
      Returns:
      true if this Action should have a separator after it
    • insertToolbarSeparatorBefore

      public boolean insertToolbarSeparatorBefore()
      Insert a separator before this toolbar item.
      Returns:
      true if this Action should have a separator before it
    • insertToolbarSeparatorAfter

      public boolean insertToolbarSeparatorAfter()
      Insert a separator after this menu item.
      Returns:
      true if this Action should have a separator after it
    • setMenuGravity

      public void setMenuGravity(float gravity)
      Sets the gravity used to order this action in the menu bar.
      Specified by:
      setMenuGravity in interface CyAction
      Parameters:
      gravity - The gravity for ordering menu bar actions.
    • getMenuGravity

      public float getMenuGravity()
      Description copied from interface: CyAction
      Returns the gravity used to place the menu item for this action. Gravity is a numeric value associated with each menu item. MenuItems in the same menu pull-down are sorted in ascending order based on their gravity values.
      Specified by:
      getMenuGravity in interface CyAction
      Returns:
      The gravity used to place the menu item for this action.
    • setToolbarGravity

      public void setToolbarGravity(float gravity)
      Sets the gravity used to order this action in the toolbar.
      Specified by:
      setToolbarGravity in interface CyAction
      Parameters:
      gravity - The gravity for ordering toolbar actions.
    • getToolbarGravity

      public float getToolbarGravity()
      Description copied from interface: CyAction
      Returns the gravity used to place this action in the toolbar. Gravity is a numeric value associated with each menu item. MenuItems in the same menu pull-down are sorted in ascending order based on their gravity values.
      Specified by:
      getToolbarGravity in interface CyAction
      Returns:
      The gravity used to place this action in the toolbar.
    • setAcceleratorKeyStroke

      public void setAcceleratorKeyStroke(KeyStroke ks)
      Sets the accelerator KeyStroke for this action.
      Specified by:
      setAcceleratorKeyStroke in interface CyAction
      Parameters:
      ks - The KeyStroke to be used as an accelerator for this action. This parameter may be null, in which case no accelerator is defined.
    • getAcceleratorKeyStroke

      public KeyStroke getAcceleratorKeyStroke()
      Description copied from interface: CyAction
      Returns the accelerator KeyStroke defined for this action. Will return null if no accelerator is set.
      Specified by:
      getAcceleratorKeyStroke in interface CyAction
      Returns:
      the accelerator KeyStroke defined for this action. Will return null if no accelerator is set.
    • getPreferredMenu

      public String getPreferredMenu()
      Description copied from interface: CyAction
      This method returns a Menu specification string. Submenus are preceded by dots in this string, so the result "File.Import" specifies the submenu "Import" of the menu "File". If the result is null, the menu will be placed in a default location.
      Specified by:
      getPreferredMenu in interface CyAction
      Returns:
      the string identifying the preferred menu.
    • setPreferredMenu

      public void setPreferredMenu(String newPreferredMenu)
      Sets the preferredMenuString. See the getPreferredMenu() description for formatting description.
      Specified by:
      setPreferredMenu in interface CyAction
      Parameters:
      newPreferredMenu - The string describing the preferred menu name.
    • useCheckBoxMenuItem

      public boolean useCheckBoxMenuItem()
      Description copied from interface: CyAction
      Returns whether or not a checkbox menu item should be used. Use Action.putValue(String, Object) to set the value of Action.SELECTED_KEY to true in order to have the menu item checked.
      Specified by:
      useCheckBoxMenuItem in interface CyAction
      Returns:
      whether or not a checkbox menu item should be used.
    • useToggleButton

      public boolean useToggleButton()
      Description copied from interface: CyAction
      Returns whether or not a toggle button should be used in the tool bar. Only valid when CyAction.setIsInToolBar(boolean) is also set to true. Use Action.putValue(String, Object) to set the value of Action.SELECTED_KEY to true in order to have the toggle button selected.
      Specified by:
      useToggleButton in interface CyAction
      Returns:
      true toggle button should be used.
    • popupMenuWillBecomeVisible

      public void popupMenuWillBecomeVisible(PopupMenuEvent e)
      This method can be overridden by individual actions to set the state of menu items based on whatever unique circumstances that menu option cares about. By default it sets the state of the menu based on the "enableFor" property found in the properties used to construct the action. The valid options for "enableFor" are "network", "networkAndView", and "selectedNetworkObjs".
      Specified by:
      popupMenuWillBecomeVisible in interface PopupMenuListener
      Parameters:
      e - The triggering event.
    • popupMenuWillBecomeInvisible

      public void popupMenuWillBecomeInvisible(PopupMenuEvent e)
      This method can be used at your discretion, but otherwise does nothing.
      Specified by:
      popupMenuWillBecomeInvisible in interface PopupMenuListener
      Parameters:
      e - The triggering event.
    • popupMenuCanceled

      public void popupMenuCanceled(PopupMenuEvent e)
      This method can be used at your discretion, but otherwise does nothing.
      Specified by:
      popupMenuCanceled in interface PopupMenuListener
      Parameters:
      e - The triggering event.
    • updateEnableState

      public void updateEnableState()
      Triggers the enable state of the action to be updated based on the enableFor state of the action and the state of the system.
      Specified by:
      updateEnableState in interface CyAction
    • getProperties

      public Map<String,String> getProperties()
      Return the config props.
      Specified by:
      getProperties in interface CyAction