Eclipse GEF
2.1

org.eclipse.gef.ui.actions
Class WorkbenchPartAction

java.lang.Object
  |
  +--org.eclipse.jface.action.Action
        |
        +--org.eclipse.gef.ui.actions.WorkbenchPartAction
All Implemented Interfaces:
Disposable, IAction
Direct Known Subclasses:
EditorPartAction

public abstract class WorkbenchPartAction
extends Action
implements Disposable

Base class for actions involving a WorkbenchPart. The workbench part is useful for obtaining data needed by the action. For example, selection can be obtained using the part's site. Anything can potentially be obtained using IAdaptable.getAdapter(java.lang.Class).


Field Summary
 
Fields inherited from interface org.eclipse.jface.action.IAction
AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, IMAGE, TEXT, TOOL_TIP_TEXT
 
Constructor Summary
WorkbenchPartAction(IWorkbenchPart part)
          Constructs a WorkbenchPartAction on the given part.
 
Method Summary
protected abstract  boolean calculateEnabled()
          Calculates and returns the enabled state of this action.
 void dispose()
          Disposes the action when it is no longer needed.
protected  void execute(Command command)
          Executes the given Command using the command stack.
protected  CommandStack getCommandStack()
          Returns the editor's command stack.
protected  IWorkbenchPart getWorkbenchPart()
          Returns the workbench part given in the constructor
protected  void init()
          Initializes this action.
 boolean isEnabled()
          Returns true if the action is enabled.
protected  void refresh()
          Refreshes the properties of this action.
 void setLazyEnablementCalculation(boolean value)
          Sets lazy calculation of the isEnabled property.
protected  void setWorkbenchPart(IWorkbenchPart part)
          Sets the workbench part.
 void update()
           
 
Methods inherited from class org.eclipse.jface.action.Action
addPropertyChangeListener, convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, firePropertyChange, firePropertyChange, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, removeAcceleratorText, removePropertyChangeListener, run, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WorkbenchPartAction

public WorkbenchPartAction(IWorkbenchPart part)
Constructs a WorkbenchPartAction on the given part.

Parameters:
part - the workbench part
Method Detail

calculateEnabled

protected abstract boolean calculateEnabled()
Calculates and returns the enabled state of this action.

Returns:
true if the action is enabled

dispose

public void dispose()
Disposes the action when it is no longer needed.

Specified by:
dispose in interface Disposable

execute

protected void execute(Command command)
Executes the given Command using the command stack. The stack is obtained by calling getCommandStack(), which uses IAdapatable to retrieve the stack from the workbench part.

Parameters:
command - the command to execute

getCommandStack

protected CommandStack getCommandStack()
Returns the editor's command stack. This is done by asking the workbench part for its CommandStack via IAdaptable.getAdapter(java.lang.Class).

Returns:
the command stack

getWorkbenchPart

protected IWorkbenchPart getWorkbenchPart()
Returns the workbench part given in the constructor

Returns:
the workbench part

init

protected void init()
Initializes this action.


isEnabled

public boolean isEnabled()
Returns true if the action is enabled. If the action determines enablemenu lazily, then calculateEnabled() is always called. Otherwise, the enablement state set using Action.setEnabled(boolean) is returned.

Specified by:
isEnabled in interface IAction
Overrides:
isEnabled in class Action
Returns:
true if the action is enabled
See Also:
setLazyEnablementCalculation(boolean)

refresh

protected void refresh()
Refreshes the properties of this action.


setLazyEnablementCalculation

public void setLazyEnablementCalculation(boolean value)
Sets lazy calculation of the isEnabled property. If this value is set to true, then the action will always use calculateEnabled() whenever isEnabled() is called.

Sometimes a value of false can be used to improve performance and reduce the number of times calculateEnabled() is called. However, the client must then call the update() method at the proper times to force the update of enablement.

Sometimes a value of true can be used to improve performance. If an Action only appears in a dynamic context menu, then there is no reason to agressively update its enablement status because the user cannot see the Action. Instead, its enablement only needs to be determined when asked for, or lazily.

The default value for this setting is true.

Parameters:
value - true if the enablement should be lazy

setWorkbenchPart

protected void setWorkbenchPart(IWorkbenchPart part)
Sets the workbench part.

Parameters:
part - the workbench part

update

public void update()
See Also:
UpdateAction.update()

Eclipse GEF
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.