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
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 aTaskFactory/Taskpair. Doing so will allow your action to be used outside of a Swing specific application (which the CyAction interface binds you to)!- See Also:
- Serialized Form
Module:
swing-application-apiTo use this in your app, include the following dependency in your POM:
<dependency> <groupId>org.cytoscape</groupId> <artifactId>swing-application-api</artifactId> </dependency>
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected KeyStrokeacceleratorKeyStrokeThe accelerator keystroke, if set.protected booleanacceleratorSetIndicates whether accelerator keys have been set for the action.protected Map<String,String>configurationPropertiesThe configuration properties.protected booleaninMenuBarIndicates whether the action is in a menu.protected booleaninsertSeparatorAfterIndicates whether a menu separator should be inserted after this itemprotected booleaninsertSeparatorBeforeIndicates whether a menu separator should be inserted before this itemprotected booleaninsertToolbarSeparatorAfterIndicates whether a toolbar separator should be inserted after this itemprotected booleaninsertToolbarSeparatorBeforeIndicates whether a toolbar separator should be inserted before this itemprotected booleaninToolBarIndicates whether the action is in the toolbar.protected floatmenuGravityThe float value placing the action within the menu.protected StringnameThe name of the action.protected StringpreferredMenuThe name describing the preferred menu for the action.protected floattoolbarGravityThe float value placing the action within the toolbar.protected URLtoolTipImagePath to an optional tool tip imageprotected booleanuseCheckBoxMenuItemIndicates whether to use a checkbox menu item.protected booleanuseToggleButtonIndicates whether to use a toggle button in the tool bar.-
Fields inherited from class javax.swing.AbstractAction
changeSupport, enabled
-
Fields 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
Constructors Constructor Description AbstractCyAction(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description KeyStrokegetAcceleratorKeyStroke()Returns the accelerator KeyStroke defined for this action.floatgetMenuGravity()Returns the gravity used to place the menu item for this action.StringgetName()Returns the name of the action.StringgetPreferredMenu()This method returns a Menu specification string.Map<String,String>getProperties()Return the config props.floatgetToolbarGravity()Returns the gravity used to place this action in the toolbar.URLgetToolTipImage()Optional image to be displayed in the target component's tool tip.booleaninsertSeparatorAfter()Insert a separator after this menu item.booleaninsertSeparatorBefore()Insert a separator before this menu item.booleaninsertToolbarSeparatorAfter()Insert a separator after this menu item.booleaninsertToolbarSeparatorBefore()Insert a separator before this toolbar item.booleanisInMenuBar()By default all CytoscapeActions wish to be included in the menu bar at the 'preferredMenuName' location is specified and the 'Tools' menu not.booleanisInToolBar()By default no CytoscapeActions will be included in the toolbar.voidmenuCanceled(MenuEvent e)This method can be used at your discretion, but otherwise does nothing.voidmenuDeselected(MenuEvent e)This method can be used at your discretion, but otherwise does nothing.voidmenuSelected(MenuEvent 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.voidpopupMenuCanceled(PopupMenuEvent e)This method can be used at your discretion, but otherwise does nothing.voidpopupMenuWillBecomeInvisible(PopupMenuEvent e)This method can be used at your discretion, but otherwise does nothing.voidpopupMenuWillBecomeVisible(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.voidsetAcceleratorKeyStroke(KeyStroke ks)Sets the accelerator KeyStroke for this action.voidsetIsInMenuBar(boolean b)To support configurable menus and tools, setIsInMenuBar added for 3.6voidsetIsInToolBar(boolean b)To support configurable menus and tools, setIsInToolBar added for 3.6voidsetMenuGravity(float gravity)Sets the gravity used to order this action in the menu bar.voidsetName(String name)Sets 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.voidupdateEnableState()Triggers the enable state of the action to be updated based on the enableFor state of the action and the state of the system.booleanuseCheckBoxMenuItem()Returns whether or not a checkbox menu item should be used.booleanuseToggleButton()Returns 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, setEnabled
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javax.swing.Action
accept, addPropertyChangeListener, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled
-
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
-
-
-
-
Field Detail
-
preferredMenu
protected String preferredMenu
The name describing the preferred menu for the action.
-
menuGravity
protected float menuGravity
The float value placing the action within the menu. 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.
-
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 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
-
-
Constructor Detail
-
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:- 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.)
- 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 - (System state that the action should be enabled for. See
ActionEnableSupportfor 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:- 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.)
- 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 - (Ingored in this constructor and TaskFactoryPredicate is used instead!)
- 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:- 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.)
- 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
ActionEnableSupportfor 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 Detail
-
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:CyActionReturns the name of the action.
-
getToolTipImage
public URL 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
-
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
public void setAcceleratorKeyStroke(KeyStroke ks)
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
public KeyStroke 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
public String 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
public void setPreferredMenu(String newPreferredMenu)
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.
-
menuCanceled
public void menuCanceled(MenuEvent e)
This method can be used at your discretion, but otherwise does nothing.- Specified by:
menuCanceledin interfaceMenuListener- Parameters:
e- The triggering event.
-
menuDeselected
public void menuDeselected(MenuEvent e)
This method can be used at your discretion, but otherwise does nothing.- Specified by:
menuDeselectedin interfaceMenuListener- Parameters:
e- The triggering event.
-
menuSelected
public void menuSelected(MenuEvent 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:
menuSelectedin interfaceMenuListener- Parameters:
e- The triggering event.
-
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:
popupMenuWillBecomeVisiblein interfacePopupMenuListener- 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:
popupMenuWillBecomeInvisiblein interfacePopupMenuListener- 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:
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
public Map<String,String> getProperties()
Return the config props.- Specified by:
getPropertiesin interfaceCyAction
-
-