javax.swing.undo
Class AbstractUndoableEdit

java.lang.Object
  extended byjavax.swing.undo.AbstractUndoableEdit
All Implemented Interfaces:
Serializable, UndoableEdit
Direct Known Subclasses:
AbstractDocument.ElementEdit, CompoundEdit, DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.StyleChangeUndoableEdit, GapContent.InsertUndo, GapContent.RemoveUndo, StateEdit, StringContent.InsertUndo, StringContent.RemoveUndo

public class AbstractUndoableEdit
extends Object
implements UndoableEdit, Serializable

An abstract implementation of UndoableEdit, implementing simple responses to all boolean methods in that interface.

Author:
Ray Ryan
See Also:
Serialized Form

Field Summary
(package private)  boolean alive
          True if this edit has not received die; defaults to true.
(package private)  boolean hasBeenDone
          Defaults to true; becomes false if this edit is undone, true again if it is redone.
protected static String RedoName
          String returned by getRedoPresentationName; as of Java 2 platform v1.3.1 this field is no longer used.
protected static String UndoName
          String returned by getUndoPresentationName; as of Java 2 platform v1.3.1 this field is no longer used.
 
Constructor Summary
AbstractUndoableEdit()
          Creates an AbstractUndoableEdit which defaults and alive to true.
 
Method Summary
 boolean addEdit(UndoableEdit anEdit)
          This default implementation returns false.
 boolean canRedo()
          Returns true if this edit is alive and hasBeenDone is false.
 boolean canUndo()
          Returns true if this edit is alive and hasBeenDone is true.
 void die()
          Sets alive to false.
 String getPresentationName()
          This default implementation returns "".
 String getRedoPresentationName()
          Retreives the value from the defaults table with key AbstractUndoableEdit.redoText and returns that value followed by a space, followed by getPresentationName.
 String getUndoPresentationName()
          Retreives the value from the defaults table with key AbstractUndoableEdit.undoText and returns that value followed by a space, followed by getPresentationName.
 boolean isSignificant()
          This default implementation returns true.
 void redo()
          Throws CannotRedoException if canRedo returns false.
 boolean replaceEdit(UndoableEdit anEdit)
          This default implementation returns false.
 String toString()
          Returns a string that displays and identifies this object's properties.
 void undo()
          Throws CannotUndoException if canUndo returns false.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UndoName

protected static final String UndoName
String returned by getUndoPresentationName; as of Java 2 platform v1.3.1 this field is no longer used. This value is now localized and comes from the defaults table with key AbstractUndoableEdit.undoText.

See Also:
UIDefaults, Constant Field Values

RedoName

protected static final String RedoName
String returned by getRedoPresentationName; as of Java 2 platform v1.3.1 this field is no longer used. This value is now localized and comes from the defaults table with key AbstractUndoableEdit.redoText.

See Also:
UIDefaults, Constant Field Values

hasBeenDone

boolean hasBeenDone
Defaults to true; becomes false if this edit is undone, true again if it is redone.


alive

boolean alive
True if this edit has not received die; defaults to true.

Constructor Detail

AbstractUndoableEdit

public AbstractUndoableEdit()
Creates an AbstractUndoableEdit which defaults and alive to true.

Method Detail

die

public void die()
Sets alive to false. Note that this is a one way operation; dead edits cannot be resurrected. Sending undo or redo to a dead edit results in an exception being thrown.

Typically an edit is killed when it is consolidated by another edit's addEdit or replaceEdit method, or when it is dequeued from an UndoManager.

Specified by:
die in interface UndoableEdit
See Also:
CompoundEdit.die()

undo

public void undo()
          throws CannotUndoException
Throws CannotUndoException if canUndo returns false. Sets hasBeenDone to false. Subclasses should override to undo the operation represented by this edit. Override should begin with a call to super.

Specified by:
undo in interface UndoableEdit
Throws:
CannotUndoException - if canUndo returns false
See Also:
canUndo()

canUndo

public boolean canUndo()
Returns true if this edit is alive and hasBeenDone is true.

Specified by:
canUndo in interface UndoableEdit
Returns:
true if this edit is alive and hasBeenDone is true
See Also:
die(), undo(), redo()

redo

public void redo()
          throws CannotRedoException
Throws CannotRedoException if canRedo returns false. Sets hasBeenDone to true. Subclasses should override to redo the operation represented by this edit. Override should begin with a call to super.

Specified by:
redo in interface UndoableEdit
Throws:
CannotRedoException - if canRedo returns false
See Also:
canRedo()

canRedo

public boolean canRedo()
Returns true if this edit is alive and hasBeenDone is false.

Specified by:
canRedo in interface UndoableEdit
Returns:
true if this edit is alive and hasBeenDone is false
See Also:
die(), undo(), redo()

addEdit

public boolean addEdit(UndoableEdit anEdit)
This default implementation returns false.

Specified by:
addEdit in interface UndoableEdit
Parameters:
anEdit - the edit to be added
Returns:
false
See Also:
UndoableEdit.addEdit(javax.swing.undo.UndoableEdit)

replaceEdit

public boolean replaceEdit(UndoableEdit anEdit)
This default implementation returns false.

Specified by:
replaceEdit in interface UndoableEdit
Parameters:
anEdit - the edit to replace
Returns:
false
See Also:
UndoableEdit.replaceEdit(javax.swing.undo.UndoableEdit)

isSignificant

public boolean isSignificant()
This default implementation returns true.

Specified by:
isSignificant in interface UndoableEdit
Returns:
true
See Also:
UndoableEdit.isSignificant()

getPresentationName

public String getPresentationName()
This default implementation returns "". Used by getUndoPresentationName and getRedoPresentationName to construct the strings they return. Subclasses should override to return an appropriate description of the operation this edit represents.

Specified by:
getPresentationName in interface UndoableEdit
Returns:
the empty string ""
See Also:
getUndoPresentationName(), getRedoPresentationName()

getUndoPresentationName

public String getUndoPresentationName()
Retreives the value from the defaults table with key AbstractUndoableEdit.undoText and returns that value followed by a space, followed by getPresentationName. If getPresentationName returns "", then the defaults value is returned alone.

Specified by:
getUndoPresentationName in interface UndoableEdit
Returns:
the value from the defaults table with key AbstractUndoableEdit.undoText, followed by a space, followed by getPresentationName unless getPresentationName is "" in which case, the defaults value is returned alone.
See Also:
getPresentationName()

getRedoPresentationName

public String getRedoPresentationName()
Retreives the value from the defaults table with key AbstractUndoableEdit.redoText and returns that value followed by a space, followed by getPresentationName. If getPresentationName returns "", then the defaults value is returned alone.

Specified by:
getRedoPresentationName in interface UndoableEdit
Returns:
the value from the defaults table with key AbstractUndoableEdit.redoText, followed by a space, followed by getPresentationName unless getPresentationName is "" in which case, the defaults value is returned alone.
See Also:
getPresentationName()

toString

public String toString()
Returns a string that displays and identifies this object's properties.

Overrides:
toString in class Object
Returns:
a String representation of this object