org.eclipse.wst.jsdt.ui.actions

## Class SelectionDispatchAction

- java.lang.Object
- - Action
  - - org.eclipse.wst.jsdt.ui.actions.SelectionDispatchAction

Direct Known Subclasses:
  AddDelegateMethodsAction, AddGetterSetterAction, AddJavaDocStubAction, AddToClasspathAction, AddUnimplementedConstructorsAction, ChangeTypeAction, ConvertAnonymousToNestedAction, ConvertLocalToFieldAction, ConvertNestedToTopAction, ExternalizeStringsAction, ExtractConstantAction, ExtractMethodAction, ExtractTempAction, FindAction, FindExceptionOccurrencesAction, FindImplementOccurrencesAction, FindOccurrencesInFileAction, FormatAllAction, GenerateNewConstructorUsingFieldsAction, InlineAction, InlineTempAction, IntroduceFactoryAction, IntroduceIndirectionAction, IntroduceParameterAction, ModifyParametersAction, MoveAction, OpenAction, OpenExternalJavadocAction, OpenProjectAction, OpenSuperImplementationAction, OpenTypeHierarchyAction, OrganizeImportsAction, OverrideMethodsAction, PullUpAction, PushDownAction, RefreshAction, RemoveFromClasspathAction, RenameAction, ReplaceInvocationsAction, SelfEncapsulateFieldAction, ShowInNavigatorViewAction, ShowInPackageViewAction, SortMembersAction, SurroundWithTryCatchAction, UseSupertypeAction

    public abstract class SelectionDispatchAction
    extends Action

Action that dispatches the `IAction#run()` and the `ISelectionChangedListener#selectionChanged` according to the type of the selection.

- if selection is of type `ITextSelection` then `run(ITextSelection)` and `selectionChanged(ITextSelection)` is called.
- if selection is of type `IStructuredSelection` then `run(IStructuredSelection)` and `selectionChanged(IStructuredSelection)` is called.
- default is to call `run(ISelection)` and `selectionChanged(ISelection)`.

Note: This class is not intended to be subclassed outside the JDT UI plug-in.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Constructor Summary

Constructors
`protected` `SelectionDispatchAction(IWorkbenchSite site)` Creates a new action with no text and no image.

### Method Summary

All Methods Instance Methods Concrete Methods
`ISelection` `getSelection()` Returns the selection provided by the site owning this action.
`ISelectionProvider` `getSelectionProvider()` Returns the selection provider managed by the site owning this action or the selection provider explicitly set in `setSpecialSelectionProvider(ISelectionProvider)`.
`Shell` `getShell()` Returns the shell provided by the site owning this action.
`IWorkbenchSite` `getSite()` Returns the site owning this action.
`void` `run()`
`void` `run(ISelection selection)` Executes this actions with the given selection.
`void` `run(IStructuredSelection selection)` Executes this actions with the given structured selection.
`void` `run(ITextSelection selection)` Executes this actions with the given text selection.
`void` `selectionChanged(ISelection selection)` Notifies this action that the given selection has changed.
`void` `selectionChanged(IStructuredSelection selection)` Notifies this action that the given structured selection has changed.
`void` `selectionChanged(ITextSelection selection)` Notifies this action that the given text selection has changed.
`void` `selectionChanged(SelectionChangedEvent event)`
`void` `setSpecialSelectionProvider(ISelectionProvider provider)` Sets a special selection provider which will be used instead of the site's selection provider.
`void` `update(ISelection selection)` Updates the action's enablement state according to the given selection.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SelectionDispatchAction

    protected SelectionDispatchAction(IWorkbenchSite site)

Creates a new action with no text and no image.

Configure the action later using the set methods.

Parameters:
  `site` - the site this action is working on

### Method Detail

#### getSite

    public IWorkbenchSite getSite()

Returns the site owning this action.

Returns:
  the site owning this action

#### getSelection

    public ISelection getSelection()

Returns the selection provided by the site owning this action.

Returns:
  the site's selection

#### getShell

    public Shell getShell()

Returns the shell provided by the site owning this action.

Returns:
  the site's shell

#### getSelectionProvider

    public ISelectionProvider getSelectionProvider()

Returns the selection provider managed by the site owning this action or the selection provider explicitly set in `setSpecialSelectionProvider(ISelectionProvider)`.

Returns:
  the site's selection provider

#### setSpecialSelectionProvider

    public void setSpecialSelectionProvider(ISelectionProvider provider)

Sets a special selection provider which will be used instead of the site's selection provider. This method should be used directly after constructing the action and before the action is registered as a selection listener. The invocation will not a perform a selection change notification.

Parameters:
  `provider` - a special selection provider which is used instead of the site's selection provider or `null` to use the site's selection provider. Clients can for example use a `ConvertingSelectionProvider` to first convert a selection before passing it to the action.

#### update

    public void update(ISelection selection)

Updates the action's enablement state according to the given selection. This default implementation calls one of the `selectionChanged` methods depending on the type of the passed selection.

Parameters:
  `selection` - the selection this action is working on

#### selectionChanged

    public void selectionChanged(IStructuredSelection selection)

Notifies this action that the given structured selection has changed. This default implementation calls `selectionChanged(ISelection selection)`.

Parameters:
  `selection` - the new selection

#### run

    public void run(IStructuredSelection selection)

Executes this actions with the given structured selection. This default implementation calls `run(ISelection selection)`.

Parameters:
  `selection` - the selection

#### selectionChanged

    public void selectionChanged(ITextSelection selection)

Notifies this action that the given text selection has changed. This default implementation calls `selectionChanged(ISelection selection)`.

Parameters:
  `selection` - the new selection

#### run

    public void run(ITextSelection selection)

Executes this actions with the given text selection. This default implementation calls `run(ISelection selection)`.

Parameters:
  `selection` - the selection

#### selectionChanged

    public void selectionChanged(ISelection selection)

Notifies this action that the given selection has changed. This default implementation sets the action's enablement state to `false`.

Parameters:
  `selection` - the new selection

#### run

    public void run(ISelection selection)

Executes this actions with the given selection. This default implementation does nothing.

Parameters:
  `selection` - the selection

#### run

    public void run()

#### selectionChanged

    public void selectionChanged(SelectionChangedEvent event)