Eclipse Platform
Release 3.1

org.eclipse.ui.actions
Class BaseSelectionListenerAction

java.lang.Object
  extended byorg.eclipse.jface.action.Action
      extended byorg.eclipse.ui.actions.BaseSelectionListenerAction
All Implemented Interfaces:
IAction, ISelectionChangedListener
Direct Known Subclasses:
ExportResourcesAction, ImportResourcesAction, SelectionListenerAction, SynchronizeModelAction

public abstract class BaseSelectionListenerAction
extends Action
implements ISelectionChangedListener

The abstract superclass for actions that listen to selection change events. This implementation tracks the current selection (see getStructuredSelection) and provides a convenient place to monitor selection changes that could affect the availability of the action.

Subclasses must implement the following IAction method:

Subclasses may extend the updateSelection method to update the action determine its availability based on the current selection.

The object instantiating the subclass is responsible for registering the instance with a selection provider. Alternatively, the object can notify the subclass instance directly of a selection change using the methods:

Since:
3.0

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, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT
 
Constructor Summary
protected BaseSelectionListenerAction(String text)
          Creates a new action with the given text.
 
Method Summary
protected  void clearCache()
          Clears any cached state associated with the selection.
 IStructuredSelection getStructuredSelection()
          Returns the current structured selection in the workbench, or an empty selection if nothing is selected or if selection does not include objects (for example, raw text).
 void runWithEvent(Event event)
          The default implementation of this IAction method ignores the event argument, and simply calls run().
 void selectionChanged(IStructuredSelection selection)
          Notifies this action that the given structured selection has changed.
 void selectionChanged(SelectionChangedEvent event)
          The BaseSelectionListenerAction implementation of this ISelectionChangedListener method calls selectionChanged(IStructuredSelection) assuming the selection is a structured one.
protected  boolean updateSelection(IStructuredSelection selection)
          Updates this action in response to the given selection.
 
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, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, removePropertyChangeListener, run, 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

BaseSelectionListenerAction

protected BaseSelectionListenerAction(String text)
Creates a new action with the given text.

Parameters:
text - the string used as the text for the action, or null if there is no text
Method Detail

clearCache

protected void clearCache()
Clears any cached state associated with the selection. Called when the selection changes.

The BaseSelectionListenerAction implementation of this method does nothing. Subclasses may override.


getStructuredSelection

public IStructuredSelection getStructuredSelection()
Returns the current structured selection in the workbench, or an empty selection if nothing is selected or if selection does not include objects (for example, raw text).

Returns:
the current structured selection in the workbench

selectionChanged

public final void selectionChanged(IStructuredSelection selection)
Notifies this action that the given structured selection has changed.

The BaseSelectionListenerAction implementation of this method records the given selection for future reference and calls updateSelection, updating the enable state of this action based on the outcome. Subclasses should override updateSelection to react to selection changes.

Parameters:
selection - the new selection

selectionChanged

public final void selectionChanged(SelectionChangedEvent event)
The BaseSelectionListenerAction implementation of this ISelectionChangedListener method calls selectionChanged(IStructuredSelection) assuming the selection is a structured one. Subclasses should override the updateSelection method to react to selection changes.

Specified by:
selectionChanged in interface ISelectionChangedListener
Parameters:
event - event object describing the change

updateSelection

protected boolean updateSelection(IStructuredSelection selection)
Updates this action in response to the given selection.

The BaseSelectionListenerAction implementation of this method returns true. Subclasses may extend to react to selection changes; however, if the super method returns false, the overriding method must also return false.

Parameters:
selection - the new selection
Returns:
true if the action should be enabled for this selection, and false otherwise

runWithEvent

public void runWithEvent(Event event)
Description copied from class: Action
The default implementation of this IAction method ignores the event argument, and simply calls run(). Subclasses should override this method if they need information from the triggering event, or override run() if not.

Specified by:
runWithEvent in interface IAction
Overrides:
runWithEvent in class Action
Parameters:
event - the SWT event which triggered this action being run

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.