Class SelectionListenerAction

All Implemented Interfaces:
IAction, ISelectionChangedListener
Direct Known Subclasses:
AddBookmarkAction, AddTaskAction, CopyProjectAction, CopyResourceAction, CreateFileAction, CreateFolderAction, DeleteResourceAction, OpenSystemEditorAction, WorkspaceAction

public abstract class SelectionListenerAction extends BaseSelectionListenerAction
The abstract superclass for resource-based 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:

  • run - to do the action's work

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:

  • selectionChanged(IStructuredSelection) - passing the selection
  • selectionChanged(ISelectionChangedEvent) - passing the selection change event
  • Constructor Details

    • SelectionListenerAction

      protected SelectionListenerAction(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 Details

    • clearCache

      protected void clearCache()
      The SelectionListenerAction implementation of this BaseSelectionListenerAction method clears the cached resources and non-resources.
      Overrides:
      clearCache in class BaseSelectionListenerAction
    • getSelectedNonResources

      protected List<?> getSelectedNonResources()
      Returns the elements in the current selection that are not IResources.
      Returns:
      list of elements (element type: Object)
    • getSelectedResources

      protected List<? extends IResource> getSelectedResources()
      Returns the elements in the current selection that are IResources.
      Returns:
      list of resource elements (element type: IResource)
    • resourceIsType

      protected boolean resourceIsType(IResource resource, int resourceMask)
      Returns whether the type of the given resource is among those in the given resource type mask.
      Parameters:
      resource - the resource
      resourceMask - a bitwise OR of resource types: IResource.{FILE, FOLDER, PROJECT, ROOT}
      Returns:
      true if the resource type matches, and false otherwise
      See Also:
    • selectionIsOfType

      protected boolean selectionIsOfType(int resourceMask)
      Returns whether the current selection consists entirely of resources whose types are among those in the given resource type mask.
      Parameters:
      resourceMask - a bitwise OR of resource types: IResource.{FILE, FOLDER, PROJECT, ROOT}
      Returns:
      true if all resources in the current selection are of the specified types or if the current selection is empty, and false if some elements are resources of a different type or not resources
      See Also: