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 Detail

      • 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:
        TextEditorAction(ResourceBundle, String, ITextEditor)
    • Method Detail

      • 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:
        How radio buttons are handled, How check boxes are handled
      • 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