View Javadoc

1   package org.catacomb.druid.gui.edit;
2   
3   import org.catacomb.druid.event.LabelActor;
4   import org.catacomb.druid.swing.DFloat;
5   import org.catacomb.interlish.content.DoubleValue;
6   import org.catacomb.interlish.structure.*;
7   import org.catacomb.report.E;
8   
9   
10  import java.awt.Color;
11  
12  public class DruFloat extends DruGCPanel
13      implements LabelActor, Ablable, DoubleValueEditor, ValueWatcher {
14      static final long serialVersionUID = 1001;
15  
16      DFloat dFloat;
17  
18      public LabelActor labelActor;
19  
20  
21      DoubleValue doubleValue;
22  
23  
24  
25      public DruFloat(double val, double min, double max, String scale) {
26          super();
27  
28          dFloat = new DFloat(val, min, max, scale);
29  
30          addSingleDComponent(dFloat);
31          dFloat.setLabelActor(this);
32      }
33  
34  
35      public void setProperties(double val, double min, double max, String scale) {
36          dFloat.setProperties(val, min, max, scale);
37      }
38  
39  
40  
41  
42      public void valueChangedBy(Value pv, Object src) {
43          if (src == this) {
44              valueChange(doubleValue.getDouble());
45  
46          } else {
47              if (doubleValue == pv) {
48                  if (doubleValue == null) {
49                      dFloat.setValue(0.0);
50                      dFloat.setEnabled(false);
51                  } else {
52                      dFloat.setValue(doubleValue.getDouble());
53                  }
54              } else {
55                  E.error("value changed by called with mismatched value");
56              }
57          }
58      }
59  
60  
61      public void setDoubleValue(DoubleValue dv) {
62          if (doubleValue != null) {
63              doubleValue.removeValueWatcher(this);
64          }
65          doubleValue = dv;
66          if (doubleValue == null) {
67              dFloat.setEnabled(false);
68          } else {
69              dFloat.setValue(doubleValue.getDouble());
70              doubleValue.addValueWatcher(this);
71          }
72      }
73  
74  
75  
76      public void setLabel(String s) {
77          dFloat.setLabel(s);
78      }
79  
80      public void setEditable(boolean b) {
81          dFloat.setEditable(b);
82          dFloat.setEnabled(b);
83      }
84  
85  
86      public void postApply() {
87          dFloat.setMouseActor(this);
88      }
89  
90  
91      public void setBg(Color c) {
92          dFloat.setBg(c);
93          super.setBg(c);
94      }
95  
96  
97      public void able(boolean b) {
98          dFloat.setEnabled(b);
99      }
100 
101 
102 
103 
104     public void labelAction(String s, boolean b) {
105         double d = dFloat.getValue();
106         if (doubleValue != null) {
107             doubleValue.reportableSetDouble(d, this);
108         } else {
109             E.warning("no holder - dropping value change " + d);
110         }
111 
112     }
113 
114 
115 
116 }