Class TextEditorAction

All Implemented Interfaces:
IAction, IUpdate
Direct Known Subclasses:
AddMarkerAction, CaseAction, ChangeEncodingAction, ContentAssistAction, ConvertLineDelimitersAction, DeleteLineAction, GotoAnnotationAction, GotoLineAction, InsertLineAction, JoinLinesAction, MarkAction, MoveLinesAction, RecenterAction, RevertToSavedAction, SaveAction, SelectAnnotationRulerAction, ShiftAction, ShowWhitespaceCharactersAction, TextOperationAction

public abstract class TextEditorAction extends ResourceAction implements IUpdate
Skeleton of a standard text editor action. The action is initially associated with a text editor via the constructor, but can subsequently be changed using setEditor. Subclasses must implement the run method and if required override the update method.

Subclasses that may modify the editor content should use canModifyEditor() in their update code to check whether updating the editor is most likely possible (even if it is read-only - this may change for editor contents that are under version control) and validateEditorInputState() before actually modifying the editor contents.

  • Constructor Details

    • TextEditorAction

      protected TextEditorAction(ResourceBundle bundle, String prefix, ITextEditor editor)
      Creates and initializes the 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
      editor - the text editor
      See Also:
    • TextEditorAction

      protected TextEditorAction(ResourceBundle bundle, String prefix, ITextEditor editor, int style)
      Creates and initializes the 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
      editor - the text editor
      style - the style of this action
      Since:
      3.0
      See Also:
  • Method Details

    • getTextEditor

      protected ITextEditor getTextEditor()
      Returns the action's text editor.
      Returns:
      the action's text editor
    • setEditor

      public void setEditor(ITextEditor editor)
      Retargets this action to the given editor.
      Parameters:
      editor - the new editor, or null if none
    • update

      public void update()
      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
    • canModifyEditor

      protected boolean canModifyEditor()
      Checks the editor's modifiable state. Returns true if the editor can be modified, taking in account the possible editor extensions.

      If the editor implements ITextEditorExtension2, this method returns ITextEditorExtension2.isEditorInputModifiable();
      else if the editor implements ITextEditorExtension, it returns ITextEditorExtension.isEditorInputReadOnly();
      else, ITextEditor.isEditable() is returned, or false if the editor is null.

      There is only a difference to validateEditorInputState() if the editor implements ITextEditorExtension2.

      Returns:
      true if a modifying action should be enabled, false otherwise
      Since:
      3.0
    • validateEditorInputState

      protected boolean validateEditorInputState()
      Checks and validates the editor's modifiable state. Returns true if an action can proceed modifying the editor's input, false if it should not.

      If the editor implements ITextEditorExtension2, this method returns ITextEditorExtension2.validateEditorInputState();
      else if the editor implements ITextEditorExtension, it returns ITextEditorExtension.isEditorInputReadOnly();
      else, ITextEditor.isEditable() is returned, or false if the editor is null.

      There is only a difference to canModifyEditor() if the editor implements ITextEditorExtension2.

      Returns:
      true if a modifying action can proceed to modify the underlying document, false otherwise
      Since:
      3.0