Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/widgets/KMSpinner.java @ 4241:49cb65d5932d
Improved the historical discharge calculation.
The calculation now creates new HistoricalWQKms (new subclass of WQKms). Those WQKms are used
to create new facets from (new) type 'HistoricalDischargeCurveFacet'. The chart generator is
improved to support those facets.
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 24 Oct 2012 14:34:35 +0200 |
parents | 4aa7216b329a |
children |
rev | line source |
---|---|
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.client.widgets; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
2 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
3 import com.google.gwt.core.client.GWT; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
4 import com.google.gwt.i18n.client.NumberFormat; |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
5 |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
6 import com.smartgwt.client.data.Record; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
7 import com.smartgwt.client.widgets.Button; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
8 import com.smartgwt.client.widgets.Label; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
9 import com.smartgwt.client.widgets.events.ClickEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 import com.smartgwt.client.widgets.form.DynamicForm; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import com.smartgwt.client.widgets.form.FormItemValueFormatter; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 import com.smartgwt.client.widgets.form.FormItemValueParser; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
13 import com.smartgwt.client.widgets.form.fields.FormItem; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.form.fields.TextItem; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 import com.smartgwt.client.widgets.form.fields.events.KeyPressEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 import com.smartgwt.client.widgets.layout.HLayout; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.flys.client.shared.model.FacetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 import java.util.ArrayList; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 import java.util.List; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 /** |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 * SpinnerItem-like element with text label and up/down buttons. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 */ |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 public class KMSpinner extends HLayout { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 protected List<KMSpinnerChangeListener> listeners = new ArrayList<KMSpinnerChangeListener>(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 protected Label label; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 protected FacetRecord facetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 protected double value; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 public KMSpinner(double initialValue, FacetRecord facetRecord) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 super(2); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 this.facetRecord = facetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 this.value = initialValue; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 setWidth("99%"); |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
42 setHeight(18); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 // minusButton shall ask service for previous available cs. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 Button minusButton = new Button("-"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 minusButton.setWidth(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
47 minusButton.setHeight(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 minusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 public void onClick(ClickEvent evt) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 fireChangedEvent(value - 0.1d, false); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 DynamicForm form = new DynamicForm(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 final TextItem kmField = new TextItem(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 kmField.setValue(initialValue); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 kmField.setWidth("*"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
58 kmField.setTitle(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 kmField.setHeight(16); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 FormItemValueFormatter doubleFormat = new FormItemValueFormatter() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
62 public String formatValue(Object value, Record record, DynamicForm form, FormItem item) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 if (value != null) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 NumberFormat nf = NumberFormat.getDecimalFormat(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
66 double d = Double.valueOf(value.toString()).doubleValue(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 return nf.format(d); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
68 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
69 catch (Exception e) { |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
70 GWT.log("EditorValueFormatter exception: " + e.toString()); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
71 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
72 // Remove junk chars from input string |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
73 return doublefyString(value.toString()); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
74 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
75 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 else { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
77 return null; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
78 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
79 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
80 }; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
81 kmField.setEditorValueFormatter(doubleFormat); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
82 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
83 FormItemValueParser doubleParser = new FormItemValueParser() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
84 public Object parseValue(String value, DynamicForm form, FormItem item) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
85 if (value == null) |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
86 return null; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
87 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 NumberFormat nf = NumberFormat.getDecimalFormat(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 double d = nf.parse(value.toString()); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 return Double.toString(d); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 catch(NumberFormatException nfe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 return value; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 }; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 kmField.setEditorValueParser(doubleParser); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 // Update on focus lost and enter-pressed. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 kmField.addBlurHandler(new BlurHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 @Override |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 public void onBlur(BlurEvent be) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 if (kmField.getValue() != null) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 fireChangedEvent(Double.parseDouble(kmField.getValue().toString()), true); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
106 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
107 catch(NumberFormatException nfe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 GWT.log("entered string cannot be parsed to double."); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 kmField.addKeyPressHandler(new KeyPressHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
114 @Override |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 public void onKeyPress(KeyPressEvent kpe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 if (kpe.getKeyName().equals("Enter")) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 kmField.blurItem(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
118 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
119 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
120 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
121 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
122 // TODO: i18n Now add all the validators, formatters, editors/parsers etc. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 form.setFields(kmField); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
124 form.setTitle(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
125 form.setTitlePrefix(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
126 form.setTitleSuffix(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 form.setTitleWidth(0); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
128 form.setWidth(50); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
129 form.setHeight(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
130 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
131 // PlusButton shall ask service for next available cs. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
132 Button plusButton = new Button("+"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
133 plusButton.setWidth(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
134 plusButton.setHeight(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
135 plusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
136 public void onClick(ClickEvent evt) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
137 fireChangedEvent(value + 0.1d, true); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
138 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
139 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
140 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
141 this.addMember(minusButton); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
142 this.addMember(form); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
143 this.addMember(plusButton); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
144 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
145 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
146 public void addChangeListener(KMSpinnerChangeListener listener) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
147 this.listeners.add(listener); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
148 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
149 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
150 protected void fireChangedEvent(double val, boolean up) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
151 for(KMSpinnerChangeListener listener : listeners) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
152 listener.spinnerValueEntered(this, val, facetRecord, up); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
153 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
154 } |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
155 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
156 /** |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
157 * Remove junk chars from double string. |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
158 * This method should work for most locales, but not for |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
159 * exotic ones that do not use "." or "," as decimal |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
160 * separator. |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
161 * @return |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
162 */ |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
163 protected String doublefyString(String str) { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
164 StringBuilder buf = new StringBuilder(str.length()); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
165 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
166 for (int n = 0; n < str.length(); n++) { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
167 char c = str.charAt(n); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
168 if ((c >= '0' && c <= '9') || c == '.' || c == ',') { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
169 buf.append(c); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
170 } |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
171 } |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
172 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
173 return buf.toString(); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
174 } |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
175 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
176 |