Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DoubleRangeOnlyPanel.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 | ea9eef426962 |
children |
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.ui; |
1265
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import com.google.gwt.i18n.client.NumberFormat; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import com.smartgwt.client.types.Alignment; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.form.fields.FloatItem; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.form.fields.StaticTextItem; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 public class DoubleRangeOnlyPanel extends DoubleRangePanel { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 public DoubleRangeOnlyPanel( |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 String titleFrom, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 String titleTo, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 double from, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 double to, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 int width, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 BlurHandler handler |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 ) { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 this(titleFrom, titleTo, from, to, width, handler, "right"); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 } |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 public DoubleRangeOnlyPanel( |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 String titleFrom, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 String titleTo, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 double from, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 double to, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 int width, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 BlurHandler handler, |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 String labelOrientation |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 ) { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 super(); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 fromItem = new FloatItem(FIELD_FROM); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 toItem = new FloatItem(FIELD_TO); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 stepItem = new FloatItem(FIELD_WIDTH); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 fromItem.addBlurHandler(handler); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 toItem.addBlurHandler(handler); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 NumberFormat nf = NumberFormat.getDecimalFormat(); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 fromItem.setValue(nf.format(from)); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 toItem.setValue(nf.format(to)); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 StaticTextItem fromText = new StaticTextItem("staticFrom"); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 fromText.setValue(titleFrom); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 fromText.setShowTitle(false); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 fromItem.setShowTitle(false); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 StaticTextItem toText = new StaticTextItem("staticTo"); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 toText.setValue(titleTo); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 toText.setShowTitle(false); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 toItem.setShowTitle(false); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 int itemWidth = width / 4; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 fromItem.setWidth(itemWidth); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 fromText.setWidth(itemWidth); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 toItem.setWidth(itemWidth); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 toText.setWidth(itemWidth); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 if (labelOrientation.equals("right")) { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 setFields(fromItem, fromText, toItem, toText); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 } |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 else { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 setFields(fromText, fromItem, toText, toItem); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 } |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 setFixedColWidths(false); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 setNumCols(4); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 setWidth(width); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 setAlign(Alignment.CENTER); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 } |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 @Override |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 public boolean validateForm() { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 return validateForm(fromItem) && validateForm(toItem); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 } |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 @Override |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 public double getStep() { |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 return -1; |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 } |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 } |