/[classpath]/classpath/javax/swing/undo/StateEditable.java
ViewVC logotype

Diff of /classpath/javax/swing/undo/StateEditable.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by mkoch, Sun Oct 12 16:44:40 2003 UTC revision 1.5 by brawer, Fri Nov 14 15:44:51 2003 UTC
# Line 1  Line 1 
1  /* StateEditable.java --  /* StateEditable.java -- Interface for collaborating with StateEdit.
2     Copyright (C) 2002, 2003 Free Software Foundation, Inc.     Copyright (C) 2002, 2003 Free Software Foundation, Inc.
3    
4  This file is part of GNU Classpath.  This file is part of GNU Classpath.
# Line 37  exception statement from your version. * Line 37  exception statement from your version. *
37    
38  package javax.swing.undo;  package javax.swing.undo;
39    
 // Imports  
40  import java.util.Hashtable;  import java.util.Hashtable;
41    
42    
43  /**  /**
44   * StateEditable public interface   * The interface for objects whose state can be undone or redone by a
45   * @author Andrew Selkirk   * {@link StateEdit} action.
46     *
47     * <p>The following example shows how to write a class that implements
48     * this interface.
49     *
50     * <pre> class Foo
51     *   implements StateEditable
52     * {
53     *   private String name;
54     *
55     *   public void setName(String n) { name = n; }
56     *
57     *   public void restoreState(Hashtable h)
58     *   {
59     *     if (h.containsKey("name"))
60     *       setName((String) h.get("name"));
61     *   }
62     *
63     *   public void storeState(Hashtable s)
64     *   {
65     *     s.put("name", name);
66     *   }
67     * }</pre>
68     *
69     * @see StateEdit
70     *
71     * @author Andrew Selkirk (aselkirk@sympatico.ca)
72     * @author Sascha Brawer (brawer@dandelis.ch)
73   */   */
74  public interface StateEditable  public interface StateEditable
75  {  {
76    /**    /**
77     * Restore State     * The ID of the Java source file in Sun&#x2019;s Revision Control
78     * @param state State     * System (RCS).  This certainly should not be part of the API
79       * specification. But in order to be API-compatible with
80       * Sun&#x2019;s reference implementation, GNU Classpath also has to
81       * provide this field. However, we do not try to match its value.
82     */     */
83    void restoreState(Hashtable state);    static final String RCSID = "";
84    
85    
86    /**    /**
87     * Store State     * Performs an edit action, taking any editable state information
88     * @param state State     * from the specified hash table.
89       *
90       * <p><b>Note to implementors of this interface:</b> To increase
91       * efficiency, the <code>StateEdit</code> class {@linkplan
92       * StateEdit#removeRedundantState() removes redundant state
93       * information}. Therefore, implementations of this interface must be
94       * prepared for the case where certain keys were stored into the
95       * table by {@link #storeState}, but are not present anymore
96       * when the <code>restoreState</code> method gets called.
97       *
98       * @param state a hash table containing the relevant state
99       * information.
100     */     */
101    void storeState(Hashtable state);    void restoreState(Hashtable state);
102    
103    
104    /**    /**
105     * For some reason, Sun made the RCS IDs visible.     * Stores any editable state information into the specified hash
106       * table.
107       *
108       * @param state a hash table for storing relevant state
109       * information.
110     */     */
111    String RCSID = "We aren't compatible";    void storeState(Hashtable state);
112  } // StateEditable  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26