/*
* @(#)StateEdit.java 1.14 04/05/05
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.swing.undo;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
/**
*
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 StateEditable
*
* @version 1.14 05/05/04
* @author Ray Ryan
*/
public class StateEdit
extends AbstractUndoableEdit {
protected static final String RCSID = "$Id: StateEdit.java,v 1.6 1997/10/01 20:05:51 sandipc Exp $";
//
// Attributes
//
/**
* The object being edited
*/
protected StateEditable object;
/**
* The state information prior to the edit
*/
protected Hashtable