Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WQAdaptedFixingInputPanel.java @ 7602:c50dbbe17950
issue1596: Store table (cell) data twice: Once as (formatted) string
as coming from server, once transformed into float (or string).
The benefit is that now we can sort table data numerically, while keeping
the formatted and i18ned display of values.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 27 Nov 2013 14:55:25 +0100 |
parents | e6bdba4f227f |
children |
rev | line source |
---|---|
6060
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.client.client.ui; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 import com.google.gwt.i18n.client.NumberFormat; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 import java.util.ArrayList; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 import java.util.List; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 import java.util.Map; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 /** |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 * This UIProvider creates a widget to enter W or Q data for |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 * Fixation analysis |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 * |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 * @author <a href="mailto:aheinecke@intevation.de">Andre Heinecke</a> |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 */ |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 public class WQAdaptedFixingInputPanel |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 extends WQAdaptedInputPanel |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 private static final long serialVersionUID = -3218827566805476423L; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 @Override |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 protected List<String> validateRange(Map<String, double[]> ranges) { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 List<String> errors = new ArrayList<String>(); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 NumberFormat nf = NumberFormat.getDecimalFormat(); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 |
6068
e6bdba4f227f
Removed cruft iterator code.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6060
diff
changeset
|
33 for (DoubleArrayPanel dap: wqranges.values()) { |
6060
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 if (!dap.validateForm()) { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 errors.add(MSG.error_invalid_double_value()); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 return errors; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 int idx = 0; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
41 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 double[] values = dap.getInputValues(); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 double[] good = new double[values.length]; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 for (double value: values) { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 if (value <= 0) { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
48 String tmp = MSG.error_validate_positive(); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 tmp = tmp.replace("$1", nf.format(value)); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 errors.add(tmp); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 } else { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 good[idx++] = value; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
55 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 double[] justGood = new double[idx]; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 for (int i = 0; i < justGood.length; i++) { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 justGood[i] = good[i]; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 if (!errors.isEmpty()) { |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 dap.setValues(justGood); |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 return errors; |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 } |
0a200ba54461
Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |