Package org.fife.ui.rtextarea

## Class RUndoManager

- java.lang.Object
- - javax.swing.undo.AbstractUndoableEdit
  - - javax.swing.undo.CompoundEdit
    - - javax.swing.undo.UndoManager
      - - org.fife.ui.rtextarea.RUndoManager

- All Implemented Interfaces:
    `Serializable`, `EventListener`, `UndoableEditListener`, `UndoableEdit`

      public class RUndoManager
      extends UndoManager

  This class manages undos/redos for a particular editor pane. It groups all undos that occur one character position apart together, to avoid Java's horrible "one character at a time" undo behavior. It also recognizes "replace" actions (i.e., text is selected, then the user types), and treats it as a single action, instead of a remove/insert action pair.
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class javax.swing.undo.CompoundEdit

      `edits`

    - ### Fields inherited from class javax.swing.undo.AbstractUndoableEdit

      `RedoName, UndoName`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RUndoManager​(RTextArea textArea)` | Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `beginInternalAtomicEdit()` | Begins an "atomic" edit.
    `void` | `endInternalAtomicEdit()` | Ends an "atomic" edit.
    `String` | `getCantRedoText()` | Returns the localized "Can't Redo" string.
    `String` | `getCantUndoText()` | Returns the localized "Can't Undo" string.
    `void` | `redo()`
    `void` | `undo()`
    `void` | `undoableEditHappened​(UndoableEditEvent e)` |
    `void` | `updateActions()` | Ensures that undo/redo actions are enabled appropriately and have descriptive text at all times.

    - ### Methods inherited from class javax.swing.undo.UndoManager

      `addEdit, canRedo, canUndo, canUndoOrRedo, discardAllEdits, editToBeRedone, editToBeUndone, end, getLimit, getRedoPresentationName, getUndoOrRedoPresentationName, getUndoPresentationName, redoTo, setLimit, toString, trimEdits, trimForLimit, undoOrRedo, undoTo`

    - ### Methods inherited from class javax.swing.undo.CompoundEdit

      `die, getPresentationName, isInProgress, isSignificant, lastEdit`

    - ### Methods inherited from class javax.swing.undo.AbstractUndoableEdit

      `replaceEdit`

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

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

- - ### Constructor Detail

    - #### RUndoManager

          public RUndoManager​(RTextArea textArea)

      Constructor.
      Parameters:
        `textArea` - The parent text area.

  - ### Method Detail

    - #### beginInternalAtomicEdit

          public void beginInternalAtomicEdit()

      Begins an "atomic" edit. This method is called when RTextArea KNOWS that some edits should be compound automatically, such as when the user is typing in overwrite mode (the deletion of the current char + insertion of the new one) or the playing back of a macro.
      See Also:
        `endInternalAtomicEdit()`

    - #### endInternalAtomicEdit

          public void endInternalAtomicEdit()

      Ends an "atomic" edit.
      See Also:
        `beginInternalAtomicEdit()`

    - #### getCantRedoText

          public String getCantRedoText()

      Returns the localized "Can't Redo" string.
      Returns:
        The localized "Can't Redo" string.
      See Also:
        `getCantUndoText()`

    - #### getCantUndoText

          public String getCantUndoText()

      Returns the localized "Can't Undo" string.
      Returns:
        The localized "Can't Undo" string.
      See Also:
        `getCantRedoText()`

    - #### redo

          public void redo()
                    throws CannotRedoException

      Specified by:
        `redo` in interface `UndoableEdit`
      Overrides:
        `redo` in class `UndoManager`
      Throws:
        `CannotRedoException`

    - #### undo

          public void undo()
                    throws CannotUndoException

      Specified by:
        `undo` in interface `UndoableEdit`
      Overrides:
        `undo` in class `UndoManager`
      Throws:
        `CannotUndoException`

    - #### undoableEditHappened

          public void undoableEditHappened​(UndoableEditEvent e)

      Specified by:
        `undoableEditHappened` in interface `UndoableEditListener`
      Overrides:
        `undoableEditHappened` in class `UndoManager`

    - #### updateActions

          public void updateActions()

      Ensures that undo/redo actions are enabled appropriately and have descriptive text at all times.