1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.host.html;
16
17 import org.htmlunit.html.DomElement;
18 import org.htmlunit.html.HtmlMeter;
19 import org.htmlunit.javascript.configuration.JsxClass;
20 import org.htmlunit.javascript.configuration.JsxConstructor;
21 import org.htmlunit.javascript.configuration.JsxGetter;
22 import org.htmlunit.javascript.host.dom.NodeList;
23
24
25
26
27
28
29
30
31 @JsxClass(domClass = HtmlMeter.class)
32 public class HTMLMeterElement extends HTMLElement {
33
34
35 private NodeList labels_;
36
37
38
39
40 @Override
41 @JsxConstructor
42 public void jsConstructor() {
43 super.jsConstructor();
44 }
45
46
47
48
49
50 @JsxGetter
51 @Override
52 public Double getValue() {
53 return getAttributeAsDouble(DomElement.VALUE_ATTRIBUTE, 0);
54 }
55
56
57
58
59
60 @JsxGetter
61 public double getMin() {
62 return getAttributeAsDouble("min", 0);
63 }
64
65
66
67
68
69 @JsxGetter
70 public double getMax() {
71 return getAttributeAsDouble("max", 1);
72 }
73
74
75
76
77
78 @JsxGetter
79 public double getLow() {
80 final double val = getAttributeAsDouble("low", Double.MAX_VALUE);
81 if (val == Double.MAX_VALUE) {
82 return getMin();
83 }
84 return val;
85 }
86
87
88
89
90
91 @JsxGetter
92 public double getHigh() {
93 final double val = getAttributeAsDouble("high", Double.MIN_VALUE);
94 if (val == Double.MIN_VALUE) {
95 return getMax();
96 }
97 return val;
98 }
99
100
101
102
103
104 @JsxGetter
105 public double getOptimum() {
106 final double val = getAttributeAsDouble("optimum", Double.MAX_VALUE);
107 if (val == Double.MAX_VALUE) {
108 return getValue();
109 }
110 return val;
111 }
112
113 private double getAttributeAsDouble(final String attributeName, final double defaultValue) {
114 try {
115 return Double.parseDouble(getDomNodeOrDie().getAttribute(attributeName));
116 }
117 catch (final NumberFormatException e) {
118 return defaultValue;
119 }
120 }
121
122
123
124
125
126 @JsxGetter
127 public NodeList getLabels() {
128 if (labels_ == null) {
129 labels_ = new LabelsNodeList(getDomNodeOrDie());
130 }
131 return labels_;
132 }
133
134 }