All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class com.sun.java.swing.undo.UndoManager

java.lang.Object
   |
   +----com.sun.java.swing.undo.AbstractUndoableEdit
           |
           +----com.sun.java.swing.undo.CompoundEdit
                   |
                   +----com.sun.java.swing.undo.UndoManager

public class UndoManager
extends CompoundEdit
implements UndoableEditListener
Concrete subclass of CompoundEdit which can serve as an UndoableEditListener, consolidating the UndoableEditEvents from a variety of sources, and undoing or redoing them one at a time. Unlike AbstractUndoableEdit and CompoundEdit, the public methods of this class are synchronized, and should be safe to call from multiple threads. This should make UndoManager a convenient marshall for sets of undoable JavaBeans.


Constructor Index

 o UndoManager()

Method Index

 o addEdit(UndoableEdit)
If inProgress, inserts anEdit at indexOfNextAdd, and removes any old edits that were at indexOfNextAdd or later.
 o canRedo()
Overridden to preserve usual semantics: returns true if a redo operation would be successful now, false otherwise
 o canUndo()
Overridden to preserve usual semantics: returns true if an undo operation would be successful now, false otherwise
 o canUndoOrRedo()
Return true if calling undoOrRedo will undo or redo.
 o discardAllEdits()
Empty the undo manager, sending each edit a die message in the process.
 o editToBeRedone()
Returns the the next significant edit to be redone if redo is called.
 o editToBeUndone()
Returns the the next significant edit to be undone if undo is called.
 o getLimit()
Returns the maximum number of edits this UndoManager will hold.
 o getRedoPresentationName()
If inProgress, returns getRedoPresentationName of the significant edit that will be redone when redo() is invoked.
 o getUndoOrRedoPresentationName()
Return the appropriate name for a command that toggles between undo and redo.
 o getUndoPresentationName()

If inProgress, returns getUndoPresentationName of the significant edit that will be undone when undo() is invoked.

 o redo()
If this UndoManager is inProgress, redoes the last significant UndoableEdit at indexOfNextAdd or after, and all insignificant edits up to it.
 o redoTo(UndoableEdit)
Redoes all changes from indexOfNextAdd to edit.
 o setLimit(int)
Set the maximum number of edits this UndoManager will hold.
 o toString()
 o trimEdits(int, int)
Tell the edits in the given range (inclusive) to die, and remove them from edits.
 o trimForLimit()
Reduce the number of queued edits to a range of size limit, centered on indexOfNextAdd.
 o undo()
If this UndoManager is inProgress, undo the last significant UndoableEdit before indexOfNextAdd, and all insignificant edits back to it.
 o undoableEditHappened(UndoableEditEvent)
Called by the UndoabledEdit sources this UndoManager listens to.
 o undoOrRedo()
Undo or redo as appropriate.
 o undoTo(UndoableEdit)
Undoes all changes from indexOfNextAdd to edit.

Constructors

 o UndoManager
 public UndoManager()

Methods

 o getLimit
 public synchronized int getLimit()
Returns the maximum number of edits this UndoManager will hold. Default value is 100.

See Also:
addEdit, setLimit
 o discardAllEdits
 public synchronized void discardAllEdits()
Empty the undo manager, sending each edit a die message in the process.

 o trimForLimit
 protected void trimForLimit()
Reduce the number of queued edits to a range of size limit, centered on indexOfNextAdd.

 o trimEdits
 protected void trimEdits(int from,
                          int to)
Tell the edits in the given range (inclusive) to die, and remove them from edits. from > to is a no-op.

 o setLimit
 public synchronized void setLimit(int l)
Set the maximum number of edits this UndoManager will hold. If edits need to be discarded to shrink the limit, they will be told to die in the reverse of the order that they were added.

See Also:
addEdit, getLimit
 o editToBeUndone
 protected UndoableEdit editToBeUndone()
Returns the the next significant edit to be undone if undo is called. May return null

 o editToBeRedone
 protected UndoableEdit editToBeRedone()
Returns the the next significant edit to be redone if redo is called. May return null

 o undoTo
 protected void undoTo(UndoableEdit edit) throws CannotUndoException
Undoes all changes from indexOfNextAdd to edit. Updates indexOfNextAdd accordingly.

 o redoTo
 protected void redoTo(UndoableEdit edit) throws CannotRedoException
Redoes all changes from indexOfNextAdd to edit. Updates indexOfNextAdd accordingly.

 o undoOrRedo
 public synchronized void undoOrRedo() throws CannotRedoException, CannotUndoException
Undo or redo as appropriate. Suitable for binding to an action that toggles between these two functions. Only makes sense to send this if limit == 1.

See Also:
canUndoOrRedo, getUndoOrRedoPresentationName
 o canUndoOrRedo
 public synchronized boolean canUndoOrRedo()
Return true if calling undoOrRedo will undo or redo. Suitable for deciding to enable a command that toggles between the two functions, which only makes sense to use if limit == 1.

See Also:
undoOrRedo
 o undo
 public synchronized void undo() throws CannotUndoException
If this UndoManager is inProgress, undo the last significant UndoableEdit before indexOfNextAdd, and all insignificant edits back to it. Updates indexOfNextAdd accordingly.

If not inProgress, indexOfNextAdd is ignored and super's routine is called.

Overrides:
undo in class CompoundEdit
See Also:
end
 o canUndo
 public synchronized boolean canUndo()
Overridden to preserve usual semantics: returns true if an undo operation would be successful now, false otherwise

Overrides:
canUndo in class CompoundEdit
 o redo
 public synchronized void redo() throws CannotRedoException
If this UndoManager is inProgress, redoes the last significant UndoableEdit at indexOfNextAdd or after, and all insignificant edits up to it. Updates indexOfNextAdd accordingly.

If not inProgress, indexOfNextAdd is ignored and super's routine is called.

Overrides:
redo in class CompoundEdit
See Also:
end
 o canRedo
 public synchronized boolean canRedo()
Overridden to preserve usual semantics: returns true if a redo operation would be successful now, false otherwise

Overrides:
canRedo in class CompoundEdit
 o addEdit
 public synchronized boolean addEdit(UndoableEdit anEdit)
If inProgress, inserts anEdit at indexOfNextAdd, and removes any old edits that were at indexOfNextAdd or later. The die method is called on each edit that is removed is sent, in the reverse of the order the edits were added. Updates indexOfNextAdd.

If not inProgress, acts as a CompoundEdit

Overrides:
addEdit in class CompoundEdit
See Also:
end, addEdit
 o getUndoOrRedoPresentationName
 public synchronized String getUndoOrRedoPresentationName()
Return the appropriate name for a command that toggles between undo and redo. Only makes sense to use such a command if limit == 1 and we're not in progress.

 o getUndoPresentationName
 public synchronized String getUndoPresentationName()

If inProgress, returns getUndoPresentationName of the significant edit that will be undone when undo() is invoked. If there is none, returns AbstractUndoableEdit.UndoName

If not inProgress, acts as a CompoundEdit

Overrides:
getUndoPresentationName in class CompoundEdit
See Also:
undo, getUndoPresentationName
 o getRedoPresentationName
 public synchronized String getRedoPresentationName()
If inProgress, returns getRedoPresentationName of the significant edit that will be redone when redo() is invoked. If there is none, returns AbstractUndoableEdit.RedoName

If not inProgress, acts as a CompoundEdit

Overrides:
getRedoPresentationName in class CompoundEdit
See Also:
redo, getUndoPresentationName
 o undoableEditHappened
 public void undoableEditHappened(UndoableEditEvent e)
Called by the UndoabledEdit sources this UndoManager listens to. Calls addEdit with e.getEdit().

See Also:
addEdit
 o toString
 public String toString()
Overrides:
toString in class CompoundEdit

All Packages  Class Hierarchy  This Package  Previous  Next  Index