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 Detail

      • 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 Detail

      • 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:
        IResource
      • 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:
        IResource