1 package jimm.datavision.field; 2 import jimm.datavision.Report; 3 import jimm.datavision.Section; 4 import jimm.datavision.Parameter; 5 import jimm.datavision.gui.FieldWidget; 6 import jimm.datavision.gui.ParameterWidget; 7 import jimm.datavision.gui.SectionWidget; 8 import java.util.Observer ; 9 import java.util.Observable ; 10 11 18 public class ParameterField extends Field implements Observer { 19 20 protected Parameter parameter; 21 22 32 public ParameterField(Long id, Report report, Section section, Object value, 33 boolean visible) 34 { 35 super(id, report, section, value, visible); 36 parameter = report.findParameter(value); 37 parameter.addObserver(this); 38 } 39 40 protected void finalize() throws Throwable { 41 parameter.deleteObserver(this); 42 super.finalize(); 43 } 44 45 public void update(Observable o, Object arg) { 46 setChanged(); 47 notifyObservers(arg); 48 } 49 50 public FieldWidget makeWidget(SectionWidget sw) { 51 return new ParameterWidget(sw, this); 52 } 53 54 57 public String dragString() { 58 return typeString() + ":" + parameter.getId(); 59 } 60 61 66 public Parameter getParameter() { return parameter; } 67 68 73 public void setParameter(Parameter newParameter) { 74 if (parameter != newParameter) { 75 parameter.deleteObserver(this); 76 parameter = newParameter; 77 parameter.addObserver(this); 78 setChanged(); 79 notifyObservers(); 80 } 81 } 82 83 public String typeString() { return "parameter"; } 84 85 public String designLabel() { return parameter.designLabel(); } 86 87 public String formulaString() { return parameter.formulaString(); } 88 89 public boolean refersTo(Parameter p) { 90 return parameter == p; 91 } 92 93 99 public boolean canBeAggregated() { 100 return section != null && section.isDetail() 102 && getParameter().getType() == Parameter.TYPE_NUMERIC; 103 } 104 105 111 public Object getValue() { return parameter.getValue(); } 112 113 } 114 | Popular Tags |