JAL-2629 add logarithmic parameter for logarithmic slider
[jalview.git] / src / jalview / ws / params / simple / LogarithmicParameter.java
1 package jalview.ws.params.simple;
2
3 import jalview.ws.params.ParameterI;
4 import jalview.ws.params.ValueConstrainI;
5
6 /**
7  * 
8  * @author TZVanaalten
9  *
10  */
11 public class LogarithmicParameter extends Option implements ParameterI
12 {
13   Double defval;
14
15   Double min, max;
16
17   Double base;
18
19   @Override
20   public ValueConstrainI getValidValue()
21   {
22     return new ValueConstrainI()
23     {
24
25       @Override
26       public ValueType getType()
27       {
28         return ValueType.Double;
29       }
30
31       @Override
32       public Number getMin()
33       {
34         if (min < max)
35         {
36           return min;
37         }
38         else
39         {
40           return null;
41         }
42       }
43
44       @Override
45       public Number getMax()
46       {
47         if (min < max)
48         {
49           return max;
50         }
51         else
52         {
53           return null;
54         }
55       }
56     };
57   }
58
59   public LogarithmicParameter(LogarithmicParameter parm)
60   {
61     super(parm);
62     max = parm.max;
63     min = parm.min;
64     base = parm.base;
65   }
66
67   public LogarithmicParameter(String name, String description,
68           boolean required, Double defValue, Double min, Double max,
69           Double base)
70   {
71     super(name, description, required, String.valueOf(defValue), null, null,
72             null);
73     defval = defValue;
74     this.min = min;
75     this.max = max;
76     this.base = base;
77   }
78
79   public LogarithmicParameter(String name, String description,
80           boolean required, Double defValue, Double value, Double min,
81           Double max, Double base)
82   {
83     super(name, description, required, String.valueOf(defValue),
84             String.valueOf(value), null, null);
85     defval = defValue;
86     this.min = min;
87     this.max = max;
88     this.base = base;
89   }
90
91   @Override
92   public LogarithmicParameter copy()
93   {
94     return new LogarithmicParameter(this);
95   }
96
97   public Double getBase()
98   {
99     return base;
100   }
101 }