|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.undo.AbstractUndoableEdit javax.swing.undo.CompoundEdit javax.swing.undo.UndoManager
Concrete subclass of CompoundEdit
which can serve as a 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.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeansTM
has been added to the java.beans
package.
Please see XMLEncoder
.
Field Summary | |
(package private) int |
indexOfNextAdd
|
(package private) int |
limit
|
Fields inherited from class javax.swing.undo.CompoundEdit |
edits, inProgress |
Fields inherited from class javax.swing.undo.AbstractUndoableEdit |
alive, hasBeenDone, RedoName, UndoName |
Constructor Summary | |
UndoManager()
|
Method Summary | |
boolean |
addEdit(UndoableEdit anEdit)
If inProgress, inserts anEdit at indexOfNextAdd, and removes any old edits that were at indexOfNextAdd or later. |
boolean |
canRedo()
Overridden to preserve usual semantics: returns true if a redo operation would be successful now, false otherwise |
boolean |
canUndo()
Overridden to preserve usual semantics: returns true if an undo operation would be successful now, false otherwise |
boolean |
canUndoOrRedo()
Return true if calling undoOrRedo will undo or redo. |
void |
discardAllEdits()
Empty the undo manager, sending each edit a die message in the process. |
protected UndoableEdit |
editToBeRedone()
Returns the the next significant edit to be redone if redo is called. |
protected UndoableEdit |
editToBeUndone()
Returns the the next significant edit to be undone if undo is called. |
void |
end()
Sending end() to an UndoManager turns it into a plain old (ended) CompoundEdit. |
int |
getLimit()
Returns the maximum number of edits this UndoManager will hold. |
String |
getRedoPresentationName()
If inProgress, returns getRedoPresentationName of the significant edit that will be redone when redo() is invoked. |
String |
getUndoOrRedoPresentationName()
Return the appropriate name for a command that toggles between undo and redo. |
String |
getUndoPresentationName()
If inProgress, returns getUndoPresentationName of the significant edit that will be undone when undo() is invoked. |
void |
redo()
If this UndoManager is inProgress ,
redoes the last significant UndoableEdit at
indexOfNextAdd or after, and all insignificant
edits up to it. |
protected void |
redoTo(UndoableEdit edit)
Redoes all changes from indexOfNextAdd to edit. |
void |
setLimit(int l)
Set the maximum number of edits this UndoManager will hold. |
String |
toString()
Returns a string that displays and identifies this object's properties. |
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. |
protected void |
trimForLimit()
Reduce the number of queued edits to a range of size limit, centered on indexOfNextAdd. |
void |
undo()
If this UndoManager is inProgress, undo the last significant UndoableEdit before indexOfNextAdd, and all insignificant edits back to it. |
void |
undoableEditHappened(UndoableEditEvent e)
Called by the UndoabledEdit sources this UndoManager listens to. |
void |
undoOrRedo()
Undo or redo as appropriate. |
protected void |
undoTo(UndoableEdit edit)
Undoes all changes from indexOfNextAdd to edit. |
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 |
int indexOfNextAdd
int limit
Constructor Detail |
public UndoManager()
Method Detail |
public int getLimit()
addEdit(javax.swing.undo.UndoableEdit)
,
setLimit(int)
public void discardAllEdits()
protected void trimForLimit()
protected void trimEdits(int from, int to)
public void setLimit(int l)
addEdit(javax.swing.undo.UndoableEdit)
,
getLimit()
protected UndoableEdit editToBeUndone()
protected UndoableEdit editToBeRedone()
protected void undoTo(UndoableEdit edit) throws CannotUndoException
CannotUndoException
protected void redoTo(UndoableEdit edit) throws CannotRedoException
CannotRedoException
public void undoOrRedo() throws CannotRedoException, CannotUndoException
CannotRedoException
CannotUndoException
canUndoOrRedo()
,
getUndoOrRedoPresentationName()
public boolean canUndoOrRedo()
undoOrRedo()
public void undo() throws CannotUndoException
If not inProgress, indexOfNextAdd is ignored and super's routine is called.
undo
in interface UndoableEdit
undo
in class CompoundEdit
CannotUndoException
CompoundEdit.end()
public boolean canUndo()
canUndo
in interface UndoableEdit
canUndo
in class CompoundEdit
CompoundEdit.isInProgress()
public void redo() throws CannotRedoException
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.
redo
in interface UndoableEdit
redo
in class CompoundEdit
CannotRedoException
CompoundEdit.end()
public boolean canRedo()
canRedo
in interface UndoableEdit
canRedo
in class CompoundEdit
CompoundEdit.isInProgress()
public boolean addEdit(UndoableEdit anEdit)
If not inProgress
, acts as a
CompoundEdit
.
addEdit
in interface UndoableEdit
addEdit
in class CompoundEdit
anEdit
- the edit to be added
inProgress
;
otherwise returns falseCompoundEdit.end()
,
CompoundEdit.addEdit(javax.swing.undo.UndoableEdit)
public void end()
Calls super's end() method (making inProgress false), then sends die() to the unreachable edits at indexOfNextAdd and beyond, in the reverse of the order in which they were added.
end
in class CompoundEdit
CompoundEdit.end()
public String getUndoOrRedoPresentationName()
public String getUndoPresentationName()
If not inProgress, acts as a CompoundEdit
getUndoPresentationName
in interface UndoableEdit
getUndoPresentationName
in class CompoundEdit
undo()
,
CompoundEdit.getUndoPresentationName()
public String getRedoPresentationName()
If not inProgress, acts as a CompoundEdit
getRedoPresentationName
in interface UndoableEdit
getRedoPresentationName
in class CompoundEdit
redo()
,
CompoundEdit.getUndoPresentationName()
public void undoableEditHappened(UndoableEditEvent e)
undoableEditHappened
in interface UndoableEditListener
addEdit(javax.swing.undo.UndoableEdit)
public String toString()
toString
in class CompoundEdit
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |