Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/widgets/KMSpinner.java @ 6820:f48d45e760d0
issue1328: improved i18n message
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Tue, 13 Aug 2013 15:24:19 +0200 |
parents | ea9eef426962 |
children | b1ff606f01ee |
rev | line source |
---|---|
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
9 package org.dive4elements.river.client.client.widgets; |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import com.google.gwt.core.client.GWT; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 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
|
13 |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.data.Record; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.Button; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 import com.smartgwt.client.widgets.Label; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 import com.smartgwt.client.widgets.events.ClickEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 import com.smartgwt.client.widgets.form.DynamicForm; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 import com.smartgwt.client.widgets.form.FormItemValueFormatter; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 import com.smartgwt.client.widgets.form.FormItemValueParser; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import com.smartgwt.client.widgets.form.fields.FormItem; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 import com.smartgwt.client.widgets.form.fields.TextItem; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 import com.smartgwt.client.widgets.form.fields.events.KeyPressEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 import com.smartgwt.client.widgets.layout.HLayout; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
29 import org.dive4elements.river.client.shared.model.FacetRecord; |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 import java.util.ArrayList; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 import java.util.List; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 /** |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 * SpinnerItem-like element with text label and up/down buttons. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 */ |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 public class KMSpinner extends HLayout { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 protected List<KMSpinnerChangeListener> listeners = new ArrayList<KMSpinnerChangeListener>(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 protected Label label; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 protected FacetRecord facetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 protected double value; |
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 public KMSpinner(double initialValue, FacetRecord facetRecord) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 super(2); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 this.facetRecord = facetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
47 this.value = initialValue; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 setWidth("99%"); |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
50 setHeight(18); |
3717
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 // minusButton shall ask service for previous available cs. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 Button minusButton = new Button("-"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 minusButton.setWidth(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 minusButton.setHeight(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 minusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 public void onClick(ClickEvent evt) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
58 fireChangedEvent(value - 0.1d, false); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 } |
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 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
62 DynamicForm form = new DynamicForm(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 final TextItem kmField = new TextItem(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 kmField.setValue(initialValue); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 kmField.setWidth("*"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
66 kmField.setTitle(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 kmField.setHeight(16); |
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 FormItemValueFormatter doubleFormat = new FormItemValueFormatter() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
70 public String formatValue(Object value, Record record, DynamicForm form, FormItem item) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
71 if (value != null) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
72 NumberFormat nf = NumberFormat.getDecimalFormat(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
73 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
74 double d = Double.valueOf(value.toString()).doubleValue(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
75 return nf.format(d); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
77 catch (Exception e) { |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
78 GWT.log("EditorValueFormatter exception: " + e.toString()); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
79 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
80 // Remove junk chars from input string |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
81 return doublefyString(value.toString()); |
3717
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 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
84 else { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
85 return null; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
86 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
87 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 }; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 kmField.setEditorValueFormatter(doubleFormat); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 FormItemValueParser doubleParser = new FormItemValueParser() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 public Object parseValue(String value, DynamicForm form, FormItem item) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 if (value == null) |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 return null; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 NumberFormat nf = NumberFormat.getDecimalFormat(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 double d = nf.parse(value.toString()); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 return Double.toString(d); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 catch(NumberFormatException nfe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 return value; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 }; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 kmField.setEditorValueParser(doubleParser); |
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 // Update on focus lost and enter-pressed. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 kmField.addBlurHandler(new BlurHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 @Override |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 public void onBlur(BlurEvent be) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 if (kmField.getValue() != null) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 fireChangedEvent(Double.parseDouble(kmField.getValue().toString()), true); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
114 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 catch(NumberFormatException nfe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 GWT.log("entered string cannot be parsed to double."); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 } |
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 kmField.addKeyPressHandler(new KeyPressHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
122 @Override |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 public void onKeyPress(KeyPressEvent kpe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
124 if (kpe.getKeyName().equals("Enter")) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
125 kmField.blurItem(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
126 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
128 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
129 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
130 // TODO: i18n Now add all the validators, formatters, editors/parsers etc. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
131 form.setFields(kmField); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
132 form.setTitle(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
133 form.setTitlePrefix(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
134 form.setTitleSuffix(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
135 form.setTitleWidth(0); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
136 form.setWidth(50); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
137 form.setHeight(18); |
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 // PlusButton shall ask service for next available cs. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
140 Button plusButton = new Button("+"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
141 plusButton.setWidth(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
142 plusButton.setHeight(18); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
143 plusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
144 public void onClick(ClickEvent evt) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
145 fireChangedEvent(value + 0.1d, true); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
146 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
147 }); |
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 this.addMember(minusButton); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
150 this.addMember(form); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
151 this.addMember(plusButton); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
152 } |
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 public void addChangeListener(KMSpinnerChangeListener listener) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
155 this.listeners.add(listener); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
156 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
157 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
158 protected void fireChangedEvent(double val, boolean up) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
159 for(KMSpinnerChangeListener listener : listeners) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
160 listener.spinnerValueEntered(this, val, facetRecord, up); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
161 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
162 } |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
163 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
164 /** |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
165 * Remove junk chars from double string. |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
166 * 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
|
167 * 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
|
168 * separator. |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
169 * @return |
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 protected String doublefyString(String str) { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
172 StringBuilder buf = new StringBuilder(str.length()); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
173 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
174 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
|
175 char c = str.charAt(n); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
176 if ((c >= '0' && c <= '9') || c == '.' || c == ',') { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
177 buf.append(c); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
178 } |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
179 } |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
180 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
181 return buf.toString(); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
182 } |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
183 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
184 |