Package org.cytoscape.application.swing
Class AbstractCyAction
java.lang.Object
javax.swing.AbstractAction
org.cytoscape.application.swing.AbstractCyAction
- All Implemented Interfaces:
ActionListener,Serializable,Cloneable,EventListener,Action,MenuListener,PopupMenuListener,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 Summary
FieldsModifier and TypeFieldDescriptionprotected KeyStrokeThe accelerator keystroke, if set.protected booleanIndicates whether accelerator keys have been set for the action.The configuration properties.protected booleanIndicates whether the action is in the Edge Table Panel's toolbar.protected booleanIndicates whether the action is in a menu.protected booleanIndicates whether the action is in the Network Table Panel's toolbar.protected booleanIndicates whether the action is in the Node Table Panel's toolbar.protected booleanIndicates whether a menu separator should be inserted after this itemprotected booleanIndicates whether a menu separator should be inserted before this itemprotected booleanIndicates whether a toolbar separator should be inserted after this itemprotected booleanIndicates whether a toolbar separator should be inserted before this itemprotected booleanIndicates whether the action is in the main toolbar.protected booleanIndicates whether the action is in the Unassigned Tables Panel's toolbar.protected floatThe float value placing the action within the menu.protected StringThe name of the action.protected StringThe name describing the preferred menu for the action.protected floatThe float value placing the action within the toolbar.protected URLPath to an optional tool tip imageprotected booleanIndicates whether to use a checkbox menu item.protected booleanIndicates whether to use a toggle button in the tool bar.Fields inherited from class javax.swing.AbstractAction
changeSupport, enabledFields inherited from interface javax.swing.Action
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON -
Constructor Summary
ConstructorsConstructorDescriptionAbstractCyAction(String name) Creates a new AbstractCyAction object that is always enabled.AbstractCyAction(String name, CyApplicationManager applicationManager, String enableFor, CyNetworkViewManager networkViewManager) Creates a new AbstractCyAction object that is enabled for the specific "enableFor" state.AbstractCyAction(Map<String, String> configProps, CyApplicationManager applicationManager, CyNetworkViewManager networkViewManager) Creates a new AbstractCyAction object.AbstractCyAction(Map<String, String> configProps, CyApplicationManager applicationManager, CyNetworkViewManager networkViewManager, TaskFactory factory) Creates a new AbstractCyAction object.AbstractCyAction(Map<String, String> configProps, TaskFactory predicate) Creates a new AbstractCyAction object. -
Method Summary
Modifier and TypeMethodDescriptionReturns the accelerator KeyStroke defined for this action.floatReturns the gravity used to place the menu item for this action.getName()Returns the name of the action.This method returns a Menu specification string.Return the config props.floatReturns the gravity used to place this action in the toolbar.Optional image to be displayed in the target component's tool tip.booleanInsert a separator after this menu item.booleanInsert a separator before this menu item.booleanInsert a separator after this menu item.booleanInsert a separator before this toolbar item.booleanReturns whether the action should be in the Edge Table Panel's tool bar.booleanBy default all CytoscapeActions wish to be included in the menu bar at the 'preferredMenuName' location is specified and the 'Tools' menu not.booleanReturns whether the action should be in the Network Table Panel's tool bar.booleanReturns whether the action should be in the Node Table Panel's tool bar.booleanBy default no CytoscapeActions will be included in the toolbar.booleanReturns whether the action should be in the Unassigned Tables Panel's tool bar.voidThis method can be used at your discretion, but otherwise does nothing.voidThis method can be used at your discretion, but otherwise does nothing.voidThis method can be overridden by individual actions to set the state of menu items based on whatever unique circumstances that menu option cares about.voidThis method can be used at your discretion, but otherwise does nothing.voidThis method can be used at your discretion, but otherwise does nothing.voidThis method can be overridden by individual actions to set the state of menu items based on whatever unique circumstances that menu option cares about.voidSets the accelerator KeyStroke for this action.voidsetIsInEdgeTableToolBar(boolean b) To support configurable menus and tools, added for 3.9voidsetIsInMenuBar(boolean b) To support configurable menus and tools, setIsInMenuBar added for 3.6voidsetIsInNetworkTableToolBar(boolean b) To support configurable menus and tools, added for 3.9voidsetIsInNodeTableToolBar(boolean b) To support configurable menus and tools, added for 3.9voidsetIsInToolBar(boolean b) To support configurable menus and tools, setIsInToolBar added for 3.6voidsetIsInUnassignedTableToolBar(boolean b) To support configurable menus and tools, added for 3.9voidsetMenuGravity(float gravity) Sets the gravity used to order this action in the menu bar.voidSets the name of the action.voidsetPreferredMenu(String newPreferredMenu) Sets the preferredMenuString.voidsetToolbarGravity(float gravity) Sets the gravity used to order this action in the toolbar.voidTriggers the enable state of the action to be updated based on the enableFor state of the action and the state of the system.booleanReturns whether or not a checkbox menu item should be used.booleanReturns whether or not a toggle button should be used in the tool bar.Methods inherited from class javax.swing.AbstractAction
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabledMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.swing.Action
accept, addPropertyChangeListener, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabledMethods inherited from interface java.awt.event.ActionListener
actionPerformed
-
Field Details
-
preferredMenu
The name describing the preferred menu for the action. -
toolbarGravity
protected float toolbarGravityThe 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 acceleratorSetIndicates whether accelerator keys have been set for the action. -
acceleratorKeyStroke
The accelerator keystroke, if set. -
useCheckBoxMenuItem
protected boolean useCheckBoxMenuItemIndicates whether to use a checkbox menu item. -
useToggleButton
protected boolean useToggleButtonIndicates whether to use a toggle button in the tool bar. -
inToolBar
protected boolean inToolBarIndicates whether the action is in the main toolbar. -
inNodeTableToolBar
protected boolean inNodeTableToolBarIndicates whether the action is in the Node Table Panel's toolbar. -
inEdgeTableToolBar
protected boolean inEdgeTableToolBarIndicates whether the action is in the Edge Table Panel's toolbar. -
inNetworkTableToolBar
protected boolean inNetworkTableToolBarIndicates whether the action is in the Network Table Panel's toolbar. -
inUnassignedTableToolBar
protected boolean inUnassignedTableToolBarIndicates whether the action is in the Unassigned Tables Panel's toolbar. -
inMenuBar
protected boolean inMenuBarIndicates whether the action is in a menu. -
insertSeparatorBefore
protected boolean insertSeparatorBeforeIndicates whether a menu separator should be inserted before this item -
insertSeparatorAfter
protected boolean insertSeparatorAfterIndicates whether a menu separator should be inserted after this item -
insertToolbarSeparatorBefore
protected boolean insertToolbarSeparatorBeforeIndicates whether a toolbar separator should be inserted before this item -
insertToolbarSeparatorAfter
protected boolean insertToolbarSeparatorAfterIndicates whether a toolbar separator should be inserted after this item -
name
The name of the action. -
toolTipImage
Path to an optional tool tip image -
configurationProperties
The configuration properties. Adding it here allows extensions of this class to pass their own properties.
-
-
Constructor Details
-
AbstractCyAction
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 (seeServiceProperties):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! SeeActionEnableSupportfor 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
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 (seeServiceProperties):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! SeeActionEnableSupportfor 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 (seeServiceProperties):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! SeeActionEnableSupportfor 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
Sets the name of the action.- Parameters:
name- The name of the action.
-
getName
Description copied from interface:CyActionReturns the name of the action. -
getToolTipImage
Description copied from interface:CyActionOptional image to be displayed in the target component's tool tip.- Specified by:
getToolTipImagein interfaceCyAction
-
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:
isInMenuBarin interfaceCyAction- Returns:
- true if this CyAction should be included in menu bar.
-
setIsInMenuBar
public void setIsInMenuBar(boolean b) Description copied from interface:CyActionTo support configurable menus and tools, setIsInMenuBar added for 3.6- Specified by:
setIsInMenuBarin interfaceCyAction
-
isInToolBar
public boolean isInToolBar()By default no CytoscapeActions will be included in the toolbar.- Specified by:
isInToolBarin interfaceCyAction- Returns:
- true if this Action should be included in the toolbar.
-
setIsInToolBar
public void setIsInToolBar(boolean b) Description copied from interface:CyActionTo support configurable menus and tools, setIsInToolBar added for 3.6- Specified by:
setIsInToolBarin interfaceCyAction
-
isInNodeTableToolBar
public boolean isInNodeTableToolBar()Description copied from interface:CyActionReturns whether the action should be in the Node Table Panel's tool bar.- Specified by:
isInNodeTableToolBarin interfaceCyAction- 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:CyActionTo support configurable menus and tools, added for 3.9- Specified by:
setIsInNodeTableToolBarin interfaceCyAction
-
isInEdgeTableToolBar
public boolean isInEdgeTableToolBar()Description copied from interface:CyActionReturns whether the action should be in the Edge Table Panel's tool bar.- Specified by:
isInEdgeTableToolBarin interfaceCyAction- 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:CyActionTo support configurable menus and tools, added for 3.9- Specified by:
setIsInEdgeTableToolBarin interfaceCyAction
-
isInNetworkTableToolBar
public boolean isInNetworkTableToolBar()Description copied from interface:CyActionReturns whether the action should be in the Network Table Panel's tool bar.- Specified by:
isInNetworkTableToolBarin interfaceCyAction- 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:CyActionTo support configurable menus and tools, added for 3.9- Specified by:
setIsInNetworkTableToolBarin interfaceCyAction
-
isInUnassignedTableToolBar
public boolean isInUnassignedTableToolBar()Description copied from interface:CyActionReturns whether the action should be in the Unassigned Tables Panel's tool bar.- Specified by:
isInUnassignedTableToolBarin interfaceCyAction- 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:CyActionTo support configurable menus and tools, added for 3.9- Specified by:
setIsInUnassignedTableToolBarin interfaceCyAction
-
insertSeparatorBefore
public boolean insertSeparatorBefore()Insert a separator before this menu item.- Specified by:
insertSeparatorBeforein interfaceCyAction- Returns:
- true if this Action should have a separator before it
-
insertSeparatorAfter
public boolean insertSeparatorAfter()Insert a separator after this menu item.- Specified by:
insertSeparatorAfterin interfaceCyAction- 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:
setMenuGravityin interfaceCyAction- Parameters:
gravity- The gravity for ordering menu bar actions.
-
getMenuGravity
public float getMenuGravity()Description copied from interface:CyActionReturns 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:
getMenuGravityin interfaceCyAction- 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:
setToolbarGravityin interfaceCyAction- Parameters:
gravity- The gravity for ordering toolbar actions.
-
getToolbarGravity
public float getToolbarGravity()Description copied from interface:CyActionReturns 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:
getToolbarGravityin interfaceCyAction- Returns:
- The gravity used to place this action in the toolbar.
-
setAcceleratorKeyStroke
Sets the accelerator KeyStroke for this action.- Specified by:
setAcceleratorKeyStrokein interfaceCyAction- 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
Description copied from interface:CyActionReturns the accelerator KeyStroke defined for this action. Will return null if no accelerator is set.- Specified by:
getAcceleratorKeyStrokein interfaceCyAction- Returns:
- the accelerator KeyStroke defined for this action. Will return null if no accelerator is set.
-
getPreferredMenu
Description copied from interface:CyActionThis 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:
getPreferredMenuin interfaceCyAction- Returns:
- the string identifying the preferred menu.
-
setPreferredMenu
Sets the preferredMenuString. See thegetPreferredMenu()description for formatting description.- Specified by:
setPreferredMenuin interfaceCyAction- Parameters:
newPreferredMenu- The string describing the preferred menu name.
-
useCheckBoxMenuItem
public boolean useCheckBoxMenuItem()Description copied from interface:CyActionReturns whether or not a checkbox menu item should be used. UseAction.putValue(String, Object)to set the value ofAction.SELECTED_KEYto true in order to have the menu item checked.- Specified by:
useCheckBoxMenuItemin interfaceCyAction- Returns:
- whether or not a checkbox menu item should be used.
-
useToggleButton
public boolean useToggleButton()Description copied from interface:CyActionReturns whether or not a toggle button should be used in the tool bar. Only valid whenCyAction.setIsInToolBar(boolean)is also set to true. UseAction.putValue(String, Object)to set the value ofAction.SELECTED_KEYto true in order to have the toggle button selected.- Specified by:
useToggleButtonin interfaceCyAction- Returns:
- true toggle button should be used.
-
popupMenuWillBecomeVisible
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:
popupMenuWillBecomeVisiblein interfacePopupMenuListener- Parameters:
e- The triggering event.
-
popupMenuWillBecomeInvisible
This method can be used at your discretion, but otherwise does nothing.- Specified by:
popupMenuWillBecomeInvisiblein interfacePopupMenuListener- Parameters:
e- The triggering event.
-
popupMenuCanceled
This method can be used at your discretion, but otherwise does nothing.- Specified by:
popupMenuCanceledin interfacePopupMenuListener- 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:
updateEnableStatein interfaceCyAction
-
getProperties
Return the config props.- Specified by:
getPropertiesin interfaceCyAction
-