Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePairWidget.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 | 8f6d6d26e96f |
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; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 import com.google.gwt.core.client.GWT; |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 |
4567
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
13 import com.smartgwt.client.util.SC; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.Button; |
4567
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
15 import com.smartgwt.client.widgets.events.ClickEvent; |
4182
ad2489b595d7
Fix for issue #967
Christian Lins <christian.lins@intevation.de>
parents:
3549
diff
changeset
|
16 import com.smartgwt.client.widgets.events.ClickHandler; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 import com.smartgwt.client.widgets.grid.ListGrid; |
4567
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
18 import com.smartgwt.client.widgets.layout.HLayout; |
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
19 import com.smartgwt.client.widgets.layout.VLayout; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
21 import org.dive4elements.river.client.client.FLYSConstants; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
22 import org.dive4elements.river.client.shared.model.Artifact; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
23 import org.dive4elements.river.client.shared.model.ToLoad; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
24 import org.dive4elements.river.client.shared.model.User; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
26 |
914
39a39e9be5af
Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
899
diff
changeset
|
27 /** |
3549
6a8f83c538e3
Merged revisions 5384 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3533
diff
changeset
|
28 * Widget showing two Datacages and a add-this-button. |
6a8f83c538e3
Merged revisions 5384 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3533
diff
changeset
|
29 * Insert a record into a listgrid when add-this-button clicked. |
914
39a39e9be5af
Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
899
diff
changeset
|
30 */ |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 public class DatacagePairWidget |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 extends VLayout |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
33 { |
3549
6a8f83c538e3
Merged revisions 5384 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3533
diff
changeset
|
34 /** i18n resource. */ |
3533
a4b2220e59a6
Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents:
2905
diff
changeset
|
35 protected FLYSConstants MSG = |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
36 GWT.create(FLYSConstants.class); |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
37 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
38 /** The "remote" ListGrid to insert data to when add-button is clicked. */ |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
39 protected ListGrid grid; |
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
40 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
41 /** First (upper) DataCage Grid. */ |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
42 protected DatacageWidget firstDatacageWidget; |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
43 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
44 /** Second (lower) DataCage Grid. */ |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
45 protected DatacageWidget secondDatacageWidget; |
1298
b0ed67cb5197
Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1295
diff
changeset
|
46 |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
47 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
48 /** |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
49 * |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
50 * @param artifact Artifact to query datacage with. |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
51 * @param user User to query datacage with. |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
52 * @param outs outs to query datacage with. |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
53 * @param grid Grid into which to insert selection of pairs. |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
54 */ |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
55 public DatacagePairWidget(Artifact artifact, |
1283
e8bb11976c70
Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
917
diff
changeset
|
56 User user, |
e8bb11976c70
Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
917
diff
changeset
|
57 String outs, |
e8bb11976c70
Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
917
diff
changeset
|
58 ListGrid grid) { |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
59 this.grid = grid; |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 |
1283
e8bb11976c70
Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
917
diff
changeset
|
61 HLayout hLayout = new HLayout(); |
1349
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
62 firstDatacageWidget = new DatacageWidget( |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
63 artifact, |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
64 user, |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
65 outs, |
1349
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
66 "load-system:true", |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
67 false); |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
68 secondDatacageWidget = new DatacageWidget( |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
69 artifact, |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
70 user, |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
71 outs, |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
72 "load-system:true", |
46a4b74d87bf
Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1301
diff
changeset
|
73 false); |
1283
e8bb11976c70
Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
917
diff
changeset
|
74 firstDatacageWidget.setIsMutliSelectable(false); |
e8bb11976c70
Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
917
diff
changeset
|
75 secondDatacageWidget.setIsMutliSelectable(false); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
76 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 hLayout.addMember(firstDatacageWidget); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 hLayout.addMember(secondDatacageWidget); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
79 |
3533
a4b2220e59a6
Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents:
2905
diff
changeset
|
80 // TODO: icon |
a4b2220e59a6
Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents:
2905
diff
changeset
|
81 Button plusBtn = new Button(MSG.datacage_add_pair()); |
a4b2220e59a6
Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents:
2905
diff
changeset
|
82 plusBtn.setAutoFit(true); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 plusBtn.addClickHandler(new ClickHandler() { |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 @Override |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 public void onClick(ClickEvent event) { |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
86 plusClicked(); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
87 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
88 }); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
89 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
90 addMember(hLayout); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 addMember(plusBtn); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
92 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
93 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
94 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
95 /** |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
96 * Callback for add-button. |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
97 * Fires to load for every selected element and handler. |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
98 */ |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 public void plusClicked() { |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
100 ToLoad toLoad1 = firstDatacageWidget.getSelection(); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
101 ToLoad toLoad2 = secondDatacageWidget.getSelection(); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
102 |
4567
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
103 if (toLoad1 == null || toLoad2 == null || |
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
104 toLoad1.toRecommendations().isEmpty() || |
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
105 toLoad2.toRecommendations().isEmpty()) { |
5e6e89f19a37
flys/client: Exception catched and replaced by friendly warning (MINFO Sohlhoehendifferenz) #967/flys.
Christian Lins <christian.lins@intevation.de>
parents:
4183
diff
changeset
|
106 SC.say(MSG.warning_select_two_values()); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 return; |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
108 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
109 |
4183 | 110 grid.addData(new RecommendationPairRecord( |
111 toLoad1.toRecommendations().get(0), | |
112 toLoad2.toRecommendations().get(0))); | |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
113 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
114 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
115 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |