StateEdit (Java SE 15 & JDK 15) (original) (raw)

All Implemented Interfaces:

[Serializable](../../../../java.base/java/io/Serializable.html "interface in java.io"), [UndoableEdit](UndoableEdit.html "interface in javax.swing.undo")


public class StateEdit extends AbstractUndoableEdit

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!

See Also:

StateEditable

Constructors

Constructor Description
StateEdit​(StateEditable anObject) Create and return a new StateEdit.
StateEdit​(StateEditable anObject,String name) Create and return a new StateEdit with a presentation name.
Modifier and Type Method Description
void end() Gets the post-edit state of the StateEditable object and ends the edit.
String getPresentationName() Gets the presentation name for this edit
protected void init​(StateEditable anObject,String name) Initialize the state edit.
void redo() Tells the edited object to apply the state after the edit
protected void removeRedundantState() Remove redundant key/values in state hashtables.
void undo() Tells the edited object to apply the state prior to the edit