## org.eclipse.datatools.sqltools.sqleditor.internal.actions
Class SelectionDispatchAction

    java.lang.Object
      org.eclipse.core.commands.common.EventManager
          org.eclipse.jface.action.AbstractAction
              org.eclipse.jface.action.Action
                  org.eclipse.datatools.sqltools.sqleditor.internal.actions.SelectionDispatchAction

All Implemented Interfaces:
  org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelectionChangedListener

Direct Known Subclasses:
  CutAction, DeleteAction, DeployAction, PasteAction

    public abstract class SelectionDispatchAction

extends org.eclipse.jface.action.Action
implements org.eclipse.jface.viewers.ISelectionChangedListener

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)`.

Author:
  Hui Cao

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`

Method Summary
`org.eclipse.jface.viewers.ISelection` `getSelection()` Returns the selection provided by the site owning this action.
`org.eclipse.jface.viewers.ISelectionProvider` `getSelectionProvider()` Returns the selection provider managed by the site owning this action.
`org.eclipse.swt.widgets.Shell` `getShell()` Returns the shell provided by the site owning this action.
`org.eclipse.ui.IWorkbenchSite` `getSite()` Returns the site owning this action.
`void` `run()`
`void` `run(org.eclipse.jface.viewers.ISelection selection)` Executes this actions with the given selection.
`void` `run(org.eclipse.jface.viewers.IStructuredSelection selection)` Executes this actions with the given structured selection.
`void` `run(org.eclipse.jface.text.ITextSelection selection)` Executes this actions with the given text selection.
`void` `selectionChanged(org.eclipse.jface.viewers.ISelection selection)` Notifies this action that the given selection has changed.
`void` `selectionChanged(org.eclipse.jface.viewers.IStructuredSelection selection)` Notifies this action that the given structured selection has changed.
`void` `selectionChanged(org.eclipse.jface.text.ITextSelection selection)` Notifies this action that the given text selection has changed.
`void` `selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent event)`
`void` `update(org.eclipse.jface.viewers.ISelection selection)` Updates the action's enablement state according to the given selection.

Methods inherited from class org.eclipse.jface.action.Action

`convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText`

Methods inherited from class org.eclipse.jface.action.AbstractAction
`addPropertyChangeListener, removePropertyChangeListener`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.eclipse.jface.action.IAction
`addPropertyChangeListener, removePropertyChangeListener`

Method Detail

### getSite

    public org.eclipse.ui.IWorkbenchSite getSite()

  Returns the site owning this action.

  Returns:
    the site owning this action

### getSelection

    public org.eclipse.jface.viewers.ISelection getSelection()

  Returns the selection provided by the site owning this action.

  Returns:
    the site's selection

### getShell

    public org.eclipse.swt.widgets.Shell getShell()

  Returns the shell provided by the site owning this action.

  Returns:
    the site's shell

### getSelectionProvider

    public org.eclipse.jface.viewers.ISelectionProvider getSelectionProvider()

  Returns the selection provider managed by the site owning this action.

  Returns:
    the site's selection provider

### update

    public void update(org.eclipse.jface.viewers.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(org.eclipse.jface.viewers.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(org.eclipse.jface.viewers.IStructuredSelection selection)

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

### selectionChanged

    public void selectionChanged(org.eclipse.jface.text.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(org.eclipse.jface.text.ITextSelection selection)

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

### selectionChanged

    public void selectionChanged(org.eclipse.jface.viewers.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(org.eclipse.jface.viewers.ISelection selection)

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

### run

    public void run()

  Specified by:
    `run` in interface `org.eclipse.jface.action.IAction`
  Overrides:
    `run` in class `org.eclipse.jface.action.Action`

### selectionChanged

    public void selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent event)

  Specified by:
    `selectionChanged` in interface `org.eclipse.jface.viewers.ISelectionChangedListener`