JAL-2957 don't validate input on arrow keys
[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  * A model for a numeric-valued parameter which should be displayed using a
8  * logarithmic scale
9  * 
10  * @author TZVanaalten
11  */
12 public class LogarithmicParameter extends Option implements ParameterI
13 {
14   final double defval;
15
16   final double min;
17
18   final double max;
19
20   final double base; // todo is this even needed?
21
22   @Override
23   public ValueConstrainI getValidValue()
24   {
25     return new ValueConstrainI()
26     {
27
28       @Override
29       public ValueType getType()
30       {
31         return ValueType.Double;
32       }
33
34       @Override
35       public Number getMin()
36       {
37         return min < max ? min : null;
38       }
39
40       @Override
41       public Number getMax()
42       {
43         return min < max ? max : null;
44       }
45     };
46   }
47
48   public LogarithmicParameter(LogarithmicParameter parm)
49   {
50     super(parm);
51     max = parm.max;
52     min = parm.min;
53     defval = 0D;
54     base = parm.base;
55   }
56
57   public LogarithmicParameter(String name, String description,
58           boolean required, Double defValue, double min, double max,
59           double base)
60   {
61     super(name, description, required, String.valueOf(defValue), null, null,
62             null);
63     defval = defValue;
64     this.min = min;
65     this.max = max;
66     this.base = base;
67   }
68
69   public LogarithmicParameter(String name, String description,
70           boolean required, Double defValue, double value, double min,
71           double max, double base)
72   {
73     super(name, description, required, String.valueOf(defValue),
74             String.valueOf(value), null, null);
75     defval = defValue;
76     this.min = min;
77     this.max = max;
78     this.base = base;
79   }
80
81   @Override
82   public LogarithmicParameter copy()
83   {
84     return new LogarithmicParameter(this);
85   }
86
87   public double getBase()
88   {
89     return base;
90   }
91 }