Class AddMarkerAction

All Implemented Interfaces:
IAction, IUpdate
Direct Known Subclasses:
AddTaskAction

public class AddMarkerAction extends TextEditorAction
Action for creating a marker of a specified type for the editor's input element based on the editor's selection. If required, the action asks the user to provide a marker label. The action is initially associated with a text editor via the constructor, but that can be subsequently changed using setEditor.

The following keys, prepended by the given option prefix, are used for retrieving resources from the given bundle:

  • "dialog.title" - the input dialog's title
  • "dialog.message" - the input dialog's message
  • "error.dialog.title" - the error dialog's title
  • "error.dialog.message" - the error dialog's message

This class may be instantiated but is not intended to be subclassed.

Restriction:
This class is not intended to be subclassed by clients.
  • Constructor Details

    • AddMarkerAction

      public AddMarkerAction(ResourceBundle bundle, String prefix, ITextEditor textEditor, String markerType, boolean askForLabel)
      Creates a new action for the given text editor. The action configures its visual representation from the given resource bundle.
      Parameters:
      bundle - the resource bundle
      prefix - a prefix to be prepended to the various resource keys (described in ResourceAction constructor), or null if none
      textEditor - the text editor
      markerType - the type of marker to add
      askForLabel - true if the user should be asked for a label for the new marker
      See Also:
  • Method Details

    • getResourceBundle

      protected ResourceBundle getResourceBundle()
      Returns this action's resource bundle.
      Returns:
      this action's resource bundle
    • getResourceKeyPrefix

      protected String getResourceKeyPrefix()
      Returns this action's resource key prefix.
      Returns:
      this action's resource key prefix
    • run

      public void run()
      Description copied from class: Action
      The default implementation of this IAction method does nothing. Subclasses should override this method if they do not need information from the triggering event, or override runWithEvent(Event) if they do.
      Specified by:
      run in interface IAction
      Overrides:
      run in class Action
      See Also:
    • update

      public void update()
      Description copied from class: TextEditorAction
      Always enables this action if it is connected to a text editor. If the associated editor is null, the action is disabled. Subclasses may override.
      Specified by:
      update in interface IUpdate
      Overrides:
      update in class TextEditorAction
    • askForLabel

      protected boolean askForLabel(Map<String,Object> attributes)
      Asks the user for a marker label. Returns true if a label is entered, false if the user cancels the input dialog. The value for the attribute message is modified in the given attribute map.
      Parameters:
      attributes - the attributes map
      Returns:
      true if a label has been entered
    • getInitialAttributes

      protected Map<String,Object> getInitialAttributes()
      Returns the attributes the new marker will be initialized with.

      Subclasses may extend or replace this method.

      Returns:
      the attributes the new marker will be initialized with
    • getLabelProposal

      protected String getLabelProposal(IDocument document, int offset, int length)
      Returns the initial label for the marker.
      Parameters:
      document - the document from which to extract a label proposal
      offset - the document offset of the range from which to extract the label proposal
      length - the length of the range from which to extract the label proposal
      Returns:
      the label proposal
    • getResource

      protected IResource getResource()
      Returns the resource on which to create the marker, or null if there is no applicable resource. This queries the editor's input using getAdapter(IResource.class). Subclasses may override this method.
      Returns:
      the resource to which to attach the newly created marker