RecordableTextAction
Date: 2017-02-11

org.fife.ui.rtextarea

## Class RecordableTextAction

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

- All Implemented Interfaces:
    java.awt.event.ActionListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.swing.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.ClipboardHistoryAction, 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 javax.swing.text.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.
  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(java.lang.String text)` Constructor.
    `RecordableTextAction(java.lang.String text, javax.swing.Icon icon, java.lang.String desc, java.lang.Integer mnemonic, javax.swing.KeyStroke accelerator)` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `actionPerformed(java.awt.event.ActionEvent e)` This method is final so that you cannot override it and mess up the macro-recording part of it.
    `abstract void` | `actionPerformedImpl(java.awt.event.ActionEvent e, RTextArea textArea)` The actual meat of the action.
    `javax.swing.KeyStroke` | `getAccelerator()` Returns the accelerator for this action.
    `java.lang.String` | `getDescription()` Returns the description for this action.
    `javax.swing.Icon` | `getIcon()` Returns the icon for this action.
    `abstract java.lang.String` | `getMacroID()` Returns the identifier for this macro.
    `int` | `getMnemonic()` Returns the mnemonic for this action.
    `java.lang.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(javax.swing.KeyStroke accelerator)` Sets the accelerator for this action.
    `void` | `setMnemonic(char mnemonic)` Sets the mnemonic for this action.
    `void` | `setMnemonic(java.lang.Integer mnemonic)` Sets the mnemonic for this action.
    `void` | `setName(java.lang.String name)` Sets the name of this action.
    `void` | `setProperties(java.util.ResourceBundle msg, java.lang.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(java.lang.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(java.lang.String text)

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

    - #### RecordableTextAction

          public RecordableTextAction(java.lang.String text,
                              javax.swing.Icon icon,
                              java.lang.String desc,
                              java.lang.Integer mnemonic,
                              javax.swing.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(java.awt.event.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(java.awt.event.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 javax.swing.KeyStroke getAccelerator()

      Returns the accelerator for this action.
      Returns:
        The accelerator.
      See Also:
        `setAccelerator(KeyStroke)`

    - #### getDescription

          public java.lang.String getDescription()

      Returns the description for this action.
      Returns:
        The description.

    - #### getIcon

          public javax.swing.Icon getIcon()

      Returns the icon for this action.
      Returns:
        The icon.

    - #### getMacroID

          public abstract java.lang.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 java.lang.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(javax.swing.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(java.lang.Integer mnemonic)

      Sets the mnemonic for this action.
      Parameters:
        `mnemonic` - The new mnemonic.
      See Also:
        `setMnemonic(char)`, `getMnemonic()`

    - #### setName

          public void setName(java.lang.String name)

      Sets the name of this action.
      Parameters:
        `name` - The new name.
      See Also:
        `getName()`

    - #### setProperties

          public void setProperties(java.util.ResourceBundle msg,
                           java.lang.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(java.lang.String shortDesc)

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