Class RUndoManager

  • All Implemented Interfaces:
    java.io.Serializable, java.util.EventListener, javax.swing.event.UndoableEditListener, javax.swing.undo.UndoableEdit

    public class RUndoManager
    extends javax.swing.undo.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.
    Version:
    1.0
    See Also:
    Serialized Form
    • 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.
      java.lang.String getCantRedoText()
      Returns the localized "Can't Redo" string.
      java.lang.String getCantUndoText()
      Returns the localized "Can't Undo" string.
      void redo()  
      private RUndoManager.RCompoundEdit startCompoundEdit​(javax.swing.undo.UndoableEdit edit)  
      void undo()  
      void undoableEditHappened​(javax.swing.event.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
    • Field Detail

      • lastOffset

        private int lastOffset
      • cantUndoText

        private java.lang.String cantUndoText
      • cantRedoText

        private java.lang.String cantRedoText
      • internalAtomicEditDepth

        private int internalAtomicEditDepth
    • 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()
      • getCantRedoText

        public java.lang.String getCantRedoText()
        Returns the localized "Can't Redo" string.
        Returns:
        The localized "Can't Redo" string.
        See Also:
        getCantUndoText()
      • getCantUndoText

        public java.lang.String getCantUndoText()
        Returns the localized "Can't Undo" string.
        Returns:
        The localized "Can't Undo" string.
        See Also:
        getCantRedoText()
      • redo

        public void redo()
        Specified by:
        redo in interface javax.swing.undo.UndoableEdit
        Overrides:
        redo in class javax.swing.undo.UndoManager
      • undo

        public void undo()
        Specified by:
        undo in interface javax.swing.undo.UndoableEdit
        Overrides:
        undo in class javax.swing.undo.UndoManager
      • undoableEditHappened

        public void undoableEditHappened​(javax.swing.event.UndoableEditEvent e)
        Specified by:
        undoableEditHappened in interface javax.swing.event.UndoableEditListener
        Overrides:
        undoableEditHappened in class javax.swing.undo.UndoManager
      • updateActions

        public void updateActions()
        Ensures that undo/redo actions are enabled appropriately and have descriptive text at all times.