View Javadoc

1   // Copyright 2004, FreeHEP.
2   package hep.wired.edit;
3   
4   import java.util.logging.*;
5   import javax.swing.undo.*;
6   
7   import hep.wired.services.RecordPlot;
8   import hep.wired.services.GraphicsPanel;
9   import hep.wired.feature.Resetable;
10  
11  /***
12   * Resets the plot to its initial state.
13   *
14   * @author Mark Donszelmann
15   * @version $Id: Reset.java 256 2004-06-07 23:31:10Z duns $
16   */
17  public class Reset extends WiredEdit implements GraphicsPanelEdit {
18  
19      private static Logger logger = Logger.getLogger(Reset.class.getPackage().getName());
20      
21      private Object oldState;
22  
23      /***
24       * Creates a Reset edit.
25       */
26      public Reset() {
27          super();
28          oldState = null;
29      }
30      
31      public WiredEdit copy(RecordPlot plot) {
32          WiredEdit copy = new Reset();
33          copy.setRecordPlot(plot);
34  
35          return copy;
36      }
37      
38      public String getPresentationName() {
39          return "Reset";
40      }
41  
42      public boolean addEdit(UndoableEdit edit) {
43          if (edit instanceof Reset) {
44              // absorb
45              return true;
46          }
47          return super.addEdit(edit);
48      }
49  
50      public boolean isSupportedBy(GraphicsPanel p) {
51          return (p.getFeature(Resetable.class) != null);
52      }
53      
54      protected void redoEdit() {
55          Resetable resetable = (Resetable)getRecordPlot().getGraphicsPanel().getFeature(Resetable.class);
56          if (resetable != null) {
57              oldState = resetable.reset(oldState);
58              getRecordPlot().repaint();
59          }
60          logger.finer(toString());
61      }
62  
63      protected void undoEdit() {
64          Resetable resetable = (Resetable)getRecordPlot().getGraphicsPanel().getFeature(Resetable.class);
65          if (resetable != null) {
66              oldState = resetable.reset(oldState);
67              getRecordPlot().repaint();
68          }
69          logger.finer(toString());
70      }
71      
72  }