Eclipse Platform
Release 3.1

org.eclipse.ui.texteditor
Class TextEditorAction

java.lang.Object
  extended byorg.eclipse.jface.action.Action
      extended byorg.eclipse.ui.texteditor.ResourceAction
          extended byorg.eclipse.ui.texteditor.TextEditorAction
All Implemented Interfaces:
IAction, IUpdate
Direct Known Subclasses:
AddMarkerAction, CaseAction, ChangeEncodingAction, ContentAssistAction, ConvertLineDelimitersAction, DeleteLineAction, GotoLineAction, InsertLineAction, MarkAction, MoveLinesAction, RevertToSavedAction, SaveAction, SelectAnnotationRulerAction, ShiftAction, 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.


Field Summary
 
Fields inherited from interface org.eclipse.jface.action.IAction
AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT
 
Constructor Summary
protected TextEditorAction(ResourceBundle bundle, String prefix, ITextEditor editor)
          Creates and initializes the action for the given text editor.
protected TextEditorAction(ResourceBundle bundle, String prefix, ITextEditor editor, int style)
          Creates and initializes the action for the given text editor.
 
Method Summary
protected  boolean canModifyEditor()
          Checks the editor's modifiable state.
protected  ITextEditor getTextEditor()
          Returns the action's text editor.
 void setEditor(ITextEditor editor)
          Retargets this action to the given editor.
 void update()
          Always enables this action if it is connected to a text editor.
protected  boolean validateEditorInputState()
          Checks and validates the editor's modifiable state.
 
Methods inherited from class org.eclipse.ui.texteditor.ResourceAction
getString, initialize, setHelpContextId
 
Methods inherited from class org.eclipse.jface.action.Action
addPropertyChangeListener, convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, firePropertyChange, firePropertyChange, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, removePropertyChangeListener, run, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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:
ResourceAction.ResourceAction(ResourceBundle, String)

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:
ResourceAction.ResourceAction(ResourceBundle, String, int)
Method Detail

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 ITextEditorExtension2, 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

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.