org.fife.ui.rtextarea

## Class RecordableTextAction

- java.lang.Object
- - javax.swing.AbstractAction
  - - javax.swing.text.TextAction
    - - org.fife.ui.rtextarea.RecordableTextAction

All Implemented Interfaces:
  ActionListener, Serializable, Cloneable, EventListener, Action

Direct Known Subclasses:
  RSyntaxTextAreaEditorKit.ChangeFoldStateAction, RSyntaxTextAreaEditorKit.CloseCurlyBraceAction, RSyntaxTextAreaEditorKit.CloseMarkupTagAction, RSyntaxTextAreaEditorKit.CollapseAllCommentFoldsAction, RSyntaxTextAreaEditorKit.CollapseAllFoldsAction, RSyntaxTextAreaEditorKit.CopyAsRtfAction, RSyntaxTextAreaEditorKit.DecreaseIndentAction, RSyntaxTextAreaEditorKit.ExpandAllFoldsAction, RSyntaxTextAreaEditorKit.GoToMatchingBracketAction, RSyntaxTextAreaEditorKit.InsertTabAction, RSyntaxTextAreaEditorKit.PossiblyInsertTemplateAction, RSyntaxTextAreaEditorKit.ToggleCommentAction, RSyntaxTextAreaEditorKit.ToggleCurrentFoldAction, RTextAreaEditorKit.BeepAction, RTextAreaEditorKit.BeginAction, RTextAreaEditorKit.BeginLineAction, RTextAreaEditorKit.BeginRecordingMacroAction, RTextAreaEditorKit.BeginWordAction, RTextAreaEditorKit.CopyAction, RTextAreaEditorKit.CutAction, RTextAreaEditorKit.DecreaseFontSizeAction, RTextAreaEditorKit.DefaultKeyTypedAction, RTextAreaEditorKit.DeleteLineAction, RTextAreaEditorKit.DeleteNextCharAction, RTextAreaEditorKit.DeletePrevCharAction, RTextAreaEditorKit.DeletePrevWordAction, RTextAreaEditorKit.DeleteRestOfLineAction, RTextAreaEditorKit.DumbCompleteWordAction, RTextAreaEditorKit.EndAction, RTextAreaEditorKit.EndLineAction, RTextAreaEditorKit.EndRecordingMacroAction, RTextAreaEditorKit.EndWordAction, RTextAreaEditorKit.IncreaseFontSizeAction, RTextAreaEditorKit.InsertBreakAction, RTextAreaEditorKit.InsertContentAction, RTextAreaEditorKit.InsertTabAction, RTextAreaEditorKit.InvertSelectionCaseAction, RTextAreaEditorKit.JoinLinesAction, RTextAreaEditorKit.LineMoveAction, RTextAreaEditorKit.LowerSelectionCaseAction, RTextAreaEditorKit.NextBookmarkAction, RTextAreaEditorKit.NextOccurrenceAction, RTextAreaEditorKit.NextVisualPositionAction, RTextAreaEditorKit.NextWordAction, RTextAreaEditorKit.PasteAction, RTextAreaEditorKit.PlaybackLastMacroAction, RTextAreaEditorKit.PreviousOccurrenceAction, RTextAreaEditorKit.PreviousWordAction, RTextAreaEditorKit.RedoAction, RTextAreaEditorKit.ScrollAction, RTextAreaEditorKit.SelectAllAction, RTextAreaEditorKit.SelectLineAction, RTextAreaEditorKit.SelectWordAction, RTextAreaEditorKit.SetReadOnlyAction, RTextAreaEditorKit.SetWritableAction, RTextAreaEditorKit.TimeDateAction, RTextAreaEditorKit.ToggleBookmarkAction, RTextAreaEditorKit.ToggleTextModeAction, RTextAreaEditorKit.UndoAction, RTextAreaEditorKit.UnselectAction, RTextAreaEditorKit.UpperSelectionCaseAction, RTextAreaEditorKit.VerticalPageAction

    public abstract class RecordableTextAction
    extends TextAction

The base action used by the actions defined in `RTextAreaEditorKit`. This action is what allows instances of `RTextArea` to record keystrokes into "macros;" if an action is recordable and occurs while the user is recording a macro, it adds itself to the currently-being-recorded macro.

Version:
  0.5
Author:
  Robert Futrell
See Also:
  Serialized Form

### Field Summary

### Fields inherited from class javax.swing.AbstractAction

`changeSupport, enabled`

### Fields inherited from interface javax.swing.Action

`ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON`

### Constructor Summary

Constructors
Constructor and Description
`RecordableTextAction(String text)` Constructor.
`RecordableTextAction(String text, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator)` Constructor.

### Method Summary

Methods
`void` `actionPerformed(ActionEvent e)` This method is final so that you cannot override it and mess up the macro-recording part of it.
`abstract void` `actionPerformedImpl(ActionEvent e, RTextArea textArea)` The actual meat of the action.
`KeyStroke` `getAccelerator()` Returns the accelerator for this action.
`String` `getDescription()` Returns the description for this action.
`Icon` `getIcon()` Returns the icon for this action.
`abstract String` `getMacroID()` Returns the identifier for this macro.
`int` `getMnemonic()` Returns the mnemonic for this action.
`String` `getName()` Returns the name of this action.
`boolean` `isRecordable()` Returns whether or not this action will be recorded and replayed in a macro.
`void` `setAccelerator(KeyStroke accelerator)` Sets the accelerator for this action.
`void` `setMnemonic(char mnemonic)` Sets the mnemonic for this action.
`void` `setMnemonic(Integer mnemonic)` Sets the mnemonic for this action.
`void` `setName(String name)` Sets the name of this action.
`void` `setProperties(ResourceBundle msg, String keyRoot)` Sets the name, mnemonic, and description of this action.
`void` `setRecordable(boolean recordable)` Sets whether or not this action will be recorded and replayed in a macro.
`void` `setShortDescription(String shortDesc)` Sets the short description for this action.

### Methods inherited from class javax.swing.text.TextAction

`augmentList, getFocusedComponent, getTextComponent`

### Methods inherited from class javax.swing.AbstractAction

`addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RecordableTextAction

    public RecordableTextAction(String text)

Constructor.

Parameters:
  `text` - The text (name) associated with the action.

#### RecordableTextAction

    public RecordableTextAction(String text,
                        Icon icon,
                        String desc,
                        Integer mnemonic,
                        KeyStroke accelerator)

Constructor.

Parameters:
  `text` - The text (name) associated with the action.
  `icon` - The icon associated with the action.
  `desc` - The description of the action.
  `mnemonic` - The mnemonic for the action.
  `accelerator` - The accelerator key for the action.

### Method Detail

#### actionPerformed

    public final void actionPerformed(ActionEvent e)

This method is final so that you cannot override it and mess up the macro-recording part of it. The actual meat of the action is in `actionPerformedImpl`.

Parameters:
  `e` - The action being performed.
See Also:
  `actionPerformedImpl(java.awt.event.ActionEvent, org.fife.ui.rtextarea.RTextArea)`

#### actionPerformedImpl

    public abstract void actionPerformedImpl(ActionEvent e,
                           RTextArea textArea)

The actual meat of the action. If you wish to subclass this action and modify its behavior, this is the method to override.

Parameters:
  `e` - The action being performed.
  `textArea` - The text area "receiving" the action.
See Also:
  `actionPerformed(java.awt.event.ActionEvent)`

#### getAccelerator

    public KeyStroke getAccelerator()

Returns the accelerator for this action.

Returns:
  The accelerator.
See Also:
  `setAccelerator(KeyStroke)`

#### getDescription

    public String getDescription()

Returns the description for this action.

Returns:
  The description.

#### getIcon

    public Icon getIcon()

Returns the icon for this action.

Returns:
  The icon.

#### getMacroID

    public abstract String getMacroID()

Returns the identifier for this macro. This method makes it so that you can create an instance of the `RTextAreaEditorKit.CutAction` action, for example, rename it to "Remove", and it will still be recorded as a "cut" action. Subclasses should return a unique string from this method; preferably the name of the action.

If you subclass a `RecordableTextAction`, you should NOT override this method; if you do, the action may not be properly recorded in a macro.

Returns:
  The internally-used macro ID.

#### getMnemonic

    public int getMnemonic()

Returns the mnemonic for this action.

Returns:
  The mnemonic, or `-1` if not defined.
See Also:
  `setMnemonic(char)`, `setMnemonic(Integer)`

#### getName

    public String getName()

Returns the name of this action.

Returns:
  The name of this action.
See Also:
  `setName(String)`

#### isRecordable

    public boolean isRecordable()

Returns whether or not this action will be recorded and replayed in a macro.

Returns:
  Whether or not this action will be recorded and replayed.
See Also:
  `setRecordable(boolean)`

#### setAccelerator

    public void setAccelerator(KeyStroke accelerator)

Sets the accelerator for this action.

Parameters:
  `accelerator` - The new accelerator.
See Also:
  `getAccelerator()`

#### setMnemonic

    public void setMnemonic(char mnemonic)

Sets the mnemonic for this action.

Parameters:
  `mnemonic` - The new mnemonic.
See Also:
  `setMnemonic(Integer)`, `getMnemonic()`

#### setMnemonic

    public void setMnemonic(Integer mnemonic)

Sets the mnemonic for this action.

Parameters:
  `mnemonic` - The new mnemonic.
See Also:
  `setMnemonic(char)`, `getMnemonic()`

#### setName

    public void setName(String name)

Sets the name of this action.

Parameters:
  `name` - The new name.
See Also:
  `getName()`

#### setProperties

    public void setProperties(ResourceBundle msg,
                     String keyRoot)

Sets the name, mnemonic, and description of this action.

Parameters:
  `msg` - The resource bundle.
  `keyRoot` - The root of the keys for the properties. "`.Name`", "`.Mnemonic`", and "`.Desc`" will be appended to create the key for each property.

#### setRecordable

    public void setRecordable(boolean recordable)

Sets whether or not this action will be recorded and replayed in a macro.

Parameters:
  `recordable` - Whether or not this action should be recorded and replayed.
See Also:
  `isRecordable()`

#### setShortDescription

    public void setShortDescription(String shortDesc)

Sets the short description for this action.

Parameters:
  `shortDesc` - The short description for this action.