Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/widgets/KMSpinner.java @ 7982:b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 01 Jul 2014 13:11:43 +0200 |
parents | ea9eef426962 |
children | f7f86f4e4c8d |
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; |
7982
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
15 import com.smartgwt.client.types.Alignment; |
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
16 import com.smartgwt.client.types.VerticalAlignment; |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 import com.smartgwt.client.widgets.Button; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 import com.smartgwt.client.widgets.Label; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 import com.smartgwt.client.widgets.events.ClickEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 import com.smartgwt.client.widgets.form.DynamicForm; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import com.smartgwt.client.widgets.form.FormItemValueFormatter; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 import com.smartgwt.client.widgets.form.FormItemValueParser; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 import com.smartgwt.client.widgets.form.fields.FormItem; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 import com.smartgwt.client.widgets.form.fields.TextItem; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 import com.smartgwt.client.widgets.form.fields.events.KeyPressEvent; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 import com.smartgwt.client.widgets.layout.HLayout; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
31 import org.dive4elements.river.client.shared.model.FacetRecord; |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 import java.util.ArrayList; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 import java.util.List; |
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 /** |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 * SpinnerItem-like element with text label and up/down buttons. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 */ |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 public class KMSpinner extends HLayout { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 protected List<KMSpinnerChangeListener> listeners = new ArrayList<KMSpinnerChangeListener>(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 protected Label label; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 protected FacetRecord facetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 protected double value; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 public KMSpinner(double initialValue, FacetRecord facetRecord) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
47 super(2); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 this.facetRecord = facetRecord; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 this.value = initialValue; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 setWidth("99%"); |
7982
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
52 setHeight(24); |
3717
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 // minusButton shall ask service for previous available cs. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 Button minusButton = new Button("-"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 minusButton.setWidth(18); |
7982
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
57 minusButton.setHeight(22); |
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
58 minusButton.setValign(VerticalAlignment.CENTER); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 minusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 public void onClick(ClickEvent evt) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 fireChangedEvent(value - 0.1d, false); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
62 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 DynamicForm form = new DynamicForm(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
66 final TextItem kmField = new TextItem(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 kmField.setValue(initialValue); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
68 kmField.setWidth("*"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
69 kmField.setTitle(""); |
7982
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
70 kmField.setHeight(20); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
71 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
72 FormItemValueFormatter doubleFormat = new FormItemValueFormatter() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
73 public String formatValue(Object value, Record record, DynamicForm form, FormItem item) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
74 if (value != null) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
75 NumberFormat nf = NumberFormat.getDecimalFormat(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
77 double d = Double.valueOf(value.toString()).doubleValue(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
78 return nf.format(d); |
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 catch (Exception e) { |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
81 GWT.log("EditorValueFormatter exception: " + e.toString()); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
82 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
83 // Remove junk chars from input string |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
84 return doublefyString(value.toString()); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
85 } |
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 else { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 return null; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 } |
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 }; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 kmField.setEditorValueFormatter(doubleFormat); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 FormItemValueParser doubleParser = new FormItemValueParser() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 public Object parseValue(String value, DynamicForm form, FormItem item) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 if (value == null) |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 return null; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 NumberFormat nf = NumberFormat.getDecimalFormat(); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 double d = nf.parse(value.toString()); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 return Double.toString(d); |
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 catch(NumberFormatException nfe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 return value; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 } |
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 }; |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 kmField.setEditorValueParser(doubleParser); |
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 // Update on focus lost and enter-pressed. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 kmField.addBlurHandler(new BlurHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 @Override |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 public void onBlur(BlurEvent be) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
114 if (kmField.getValue() != null) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 try { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 fireChangedEvent(Double.parseDouble(kmField.getValue().toString()), true); |
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 catch(NumberFormatException nfe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
119 GWT.log("entered string cannot be parsed to double."); |
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 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
124 kmField.addKeyPressHandler(new KeyPressHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
125 @Override |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
126 public void onKeyPress(KeyPressEvent kpe) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 if (kpe.getKeyName().equals("Enter")) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
128 kmField.blurItem(); |
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 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
131 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
132 |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
133 // TODO: i18n Now add all the validators, formatters, editors/parsers etc. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
134 form.setFields(kmField); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
135 form.setTitle(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
136 form.setTitlePrefix(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
137 form.setTitleSuffix(""); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
138 form.setTitleWidth(0); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
139 form.setWidth(50); |
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 // PlusButton shall ask service for next available cs. |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
142 Button plusButton = new Button("+"); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
143 plusButton.setWidth(18); |
7982
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
144 plusButton.setHeight(22); |
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
145 plusButton.setValign(VerticalAlignment.CENTER); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
146 plusButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
147 public void onClick(ClickEvent evt) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
148 fireChangedEvent(value + 0.1d, true); |
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 }); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
151 |
7982
b1ff606f01ee
Fixed some smartgwt 4.1 related issues.
Raimund Renkert <rrenkert@intevation.de>
parents:
5993
diff
changeset
|
152 this.setMembersMargin(5); |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
153 this.addMember(minusButton); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
154 this.addMember(form); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
155 this.addMember(plusButton); |
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 public void addChangeListener(KMSpinnerChangeListener listener) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
159 this.listeners.add(listener); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
160 } |
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 protected void fireChangedEvent(double val, boolean up) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
163 for(KMSpinnerChangeListener listener : listeners) { |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
164 listener.spinnerValueEntered(this, val, facetRecord, up); |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
165 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
166 } |
3852
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
167 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
168 /** |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
169 * Remove junk chars from double string. |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
170 * 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
|
171 * 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
|
172 * separator. |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
173 * @return |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
174 */ |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
175 protected String doublefyString(String str) { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
176 StringBuilder buf = new StringBuilder(str.length()); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
177 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
178 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
|
179 char c = str.charAt(n); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
180 if ((c >= '0' && c <= '9') || c == '.' || c == ',') { |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
181 buf.append(c); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
182 } |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
183 } |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
184 |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
185 return buf.toString(); |
4aa7216b329a
KMSpinner height is now normal again
Christian Lins <christian.lins@intevation.de>
parents:
3717
diff
changeset
|
186 } |
3717
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
187 } |
3b4cef59836a
KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
188 |