APIdia Launch Partner
Top Description Fields Constructors Methods
javax.swing.undo

public Class StateEdit

extends AbstractUndoableEdit
Class Inheritance
Annotations
@SuppressWarnings:serial
Imports
java.util.ArrayList, .Enumeration, .Hashtable

StateEdit is a general edit for objects that change state. Objects being edited must conform to the StateEditable interface.

This edit class works by asking an object to store it's state in Hashtables before and after editing occurs. Upon undo or redo the object is told to restore it's state from these Hashtables.

A state edit is used as follows:
     // Create the edit during the "before" state of the object
     StateEdit newEdit = new StateEdit(myObject);
     // Modify the object
     myObject.someStateModifyingMethod();
     // "end" the edit when you are done modifying the object
     newEdit.end();

Note that when a StateEdit ends, it removes redundant state from the Hashtables - A state Hashtable is not guaranteed to contain all keys/values placed into it when the state is stored!

Author
Ray Ryan
See Also
StateEditable

Field Summary

Modifier and TypeField and Description
protected StateEditable
object

The object being edited

protected Hashtable<Object, Object>
postState

The state information after the edit

protected Hashtable<Object, Object>
preState

The state information prior to the edit

protected static final String
RCSID

Obsolete RCS version identity.

protected String
undoRedoName

The undo/redo presentation name

Inherited from javax.swing.undo.AbstractUndoableEdit:
alivehasBeenDoneRedoNameUndoName

Constructor Summary

AccessConstructor and Description
public
StateEdit(StateEditable
The object to watch for changing state
anObject
)

Create and return a new StateEdit.

public
StateEdit(StateEditable
The object to watch for changing state
anObject
,
String
The presentation name to be used for this edit
name
)

Create and return a new StateEdit with a presentation name.

Method Summary

Modifier and TypeMethod and Description
public void
end()

Gets the post-edit state of the StateEditable object and ends the edit.

public String
protected void
init(StateEditable
The object to watch for changing state
anObject
,
String
The presentation name to be used for this edit
name
)

Initialize the state edit.

public void
redo()

Overrides javax.swing.undo.AbstractUndoableEdit.redo.

Implements javax.swing.undo.UndoableEdit.redo.

Tells the edited object to apply the state after the edit

protected void
removeRedundantState()

Remove redundant key/values in state hashtables.

public void
undo()

Overrides javax.swing.undo.AbstractUndoableEdit.undo.

Implements javax.swing.undo.UndoableEdit.undo.

Tells the edited object to apply the state prior to the edit

Inherited from javax.swing.undo.AbstractUndoableEdit:
addEditcanRedocanUndodiegetRedoPresentationNamegetUndoPresentationNameisSignificantreplaceEdittoString

Field Detail

objectback to summary
protected StateEditable object

The object being edited

postStateback to summary
protected Hashtable<Object, Object> postState

The state information after the edit

preStateback to summary
protected Hashtable<Object, Object> preState

The state information prior to the edit

RCSIDback to summary
protected static final String RCSID

Obsolete RCS version identity.

undoRedoNameback to summary
protected String undoRedoName

The undo/redo presentation name

Constructor Detail

StateEditback to summary
public StateEdit(StateEditable anObject)

Create and return a new StateEdit.

Parameters
anObject:StateEditable

The object to watch for changing state

See Also
StateEdit
StateEditback to summary
public StateEdit(StateEditable anObject, String name)

Create and return a new StateEdit with a presentation name.

Parameters
anObject:StateEditable

The object to watch for changing state

name:String

The presentation name to be used for this edit

See Also
StateEdit

Method Detail

endback to summary
public void end()

Gets the post-edit state of the StateEditable object and ends the edit.

getPresentationNameback to summary
public String getPresentationName()

Overrides javax.swing.undo.AbstractUndoableEdit.getPresentationName.

Implements javax.swing.undo.UndoableEdit.getPresentationName.

Gets the presentation name for this edit

initback to summary
protected void init(StateEditable anObject, String name)

Initialize the state edit.

Parameters
anObject:StateEditable

The object to watch for changing state

name:String

The presentation name to be used for this edit

redoback to summary
public void redo()

Overrides javax.swing.undo.AbstractUndoableEdit.redo.

Implements javax.swing.undo.UndoableEdit.redo.

Tells the edited object to apply the state after the edit

removeRedundantStateback to summary
protected void removeRedundantState()

Remove redundant key/values in state hashtables.

undoback to summary
public void undo()

Overrides javax.swing.undo.AbstractUndoableEdit.undo.

Implements javax.swing.undo.UndoableEdit.undo.

Tells the edited object to apply the state prior to the edit