JavaCAD
Parameter.java
Go to the documentation of this file.
1 package eu.mihosoft.vrl.v3d.parametrics;
2 
3 import java.util.ArrayList;
4 
5 public class Parameter {
6 
7  private String name=null;
8  private final ArrayList<String> options=new ArrayList<String>();
9  private Long value=null;
10  private String strValue=null;
11  public Parameter(){}
12 
13  protected void setup(String key,Long defaultValue,ArrayList<String> options){
14  this.name = key;
15  if(CSGDatabase.get(name)==null)
16  setValue(defaultValue);
17  else{
19  }
21  @Override
22  public void parameterChanged(String name, Parameter p) {
23  value = p.getValue();// if another instance of parameter with this key changes value
24  }
25  });
26  for(String o:options){
27  this.options.add(o);
28  }
29  CSGDatabase.set(key, this);
30  }
31  protected void setup(String key,String defaultValue,ArrayList<String> options){
32  this.name = key;
33  if(CSGDatabase.get(name)==null)
34  this.strValue = defaultValue;
35  else{
36  this.strValue = CSGDatabase.get(name).getStrValue();
37  }
39  @Override
40  public void parameterChanged(String name, Parameter p) {
41  strValue = p.getStrValue();// if another instance of parameter with this key changes value
42  }
43  });
44  for(String o:options){
45  this.options.add(o);
46  }
47  CSGDatabase.set(key, this);
48  }
49  public String getName() {
50  return name;
51  }
52 
53  public void setValue(Long newVal){
54  if(value!=newVal){
55  value=newVal;
56  ArrayList<IParameterChanged> listeners = CSGDatabase.getParamListeners(name);
57  for(int i=0;i<listeners.size();i++){
58  IParameterChanged l=listeners.get(i);
59  l.parameterChanged(name, this);
60  }
61  }
62  }
63 
64  public Long getValue() {
65  return value;
66  }
67  public ArrayList<String> getOptions() {
68  return options;
69  }
70 
71  public String getStrValue() {
72  return strValue;
73  }
74 
75  public void setStrValue(String newValue) {
76  if(!strValue.contentEquals(newValue)){
77  strValue = newValue;
78  ArrayList<IParameterChanged> listeners = CSGDatabase.getParamListeners(name);
79  for(IParameterChanged l:listeners){
80  l.parameterChanged(name, this);
81  }
82  }
83 
84  }
85 
86 
87  public void setMM(double newVal){
88  setValue(new Long((long)(newVal*1000.0)));
89  }
90  public void setMicrons(long newVal){
91  setValue(new Long(newVal));
92  }
93 
94  public double getMM(){
95  return (Double.parseDouble(getValue().toString()))/1000.0;
96  }
97  public double getMicrons(){
98  return (Long)getValue();
99  }
100 
101 
102 }
static void set(String key, Parameter value)
static ArrayList< IParameterChanged > getParamListeners(String key)
static void addParameterListener(String key, IParameterChanged l)
static Parameter get(String key)
void setup(String key, Long defaultValue, ArrayList< String > options)
Definition: Parameter.java:13
final ArrayList< String > options
Definition: Parameter.java:8
void setup(String key, String defaultValue, ArrayList< String > options)
Definition: Parameter.java:31
void parameterChanged(String name, Parameter p)