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

http://dive4elements.wald.intevation.org