Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePairWidget.java @ 9195:a4121ec450d6
'ca.'-issue
ExportContextCSV+PDF separated
uinfo.inundationduration url export
author | gernotbelger |
---|---|
date | Fri, 29 Jun 2018 14:52:54 +0200 |
parents | af73fdd96920 |
children | e3c2ae1887e8 |
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 |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
11 import org.dive4elements.river.client.client.FLYSConstants; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
12 import org.dive4elements.river.client.shared.model.Artifact; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
13 import org.dive4elements.river.client.shared.model.ToLoad; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
14 import org.dive4elements.river.client.shared.model.User; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
15 |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 import com.google.gwt.core.client.GWT; |
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
|
17 import com.smartgwt.client.util.SC; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 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
|
19 import com.smartgwt.client.widgets.events.ClickEvent; |
4182
ad2489b595d7
Fix for issue #967
Christian Lins <christian.lins@intevation.de>
parents:
3549
diff
changeset
|
20 import com.smartgwt.client.widgets.events.ClickHandler; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 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
|
22 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
|
23 import com.smartgwt.client.widgets.layout.VLayout; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
24 |
914
39a39e9be5af
Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
899
diff
changeset
|
25 /** |
3549
6a8f83c538e3
Merged revisions 5384 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3533
diff
changeset
|
26 * 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
|
27 * 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
|
28 */ |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
29 public class DatacagePairWidget extends VLayout { |
3549
6a8f83c538e3
Merged revisions 5384 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3533
diff
changeset
|
30 /** i18n resource. */ |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
31 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
32 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
33 /** 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
|
34 protected ListGrid grid; |
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
35 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
36 /** First (upper) DataCage Grid. */ |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
37 protected DatacageWidget firstDatacageWidget; |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
38 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
39 /** Second (lower) DataCage Grid. */ |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
40 protected DatacageWidget secondDatacageWidget; |
1298
b0ed67cb5197
Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1295
diff
changeset
|
41 |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
42 /** Max number of recommendation pairs to be added */ |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
43 private final int maxCount; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
44 /** errorMsg maxCount */ |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
45 private final String msgMaxCount; |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1352
diff
changeset
|
46 |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
47 /** |
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
48 * |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
49 * @param artifact |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
50 * Artifact to query datacage with. |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
51 * @param user |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
52 * User to query datacage with. |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
53 * @param leftOuts |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
54 * outs to query the left datacage with. |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
55 * @param rightOuts |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
56 * outs to query the right datacage with. |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
57 * @param grid |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
58 * Grid into which to insert selection of pairs. |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
59 * @param max |
1284
cdb1505a32f1
Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1283
diff
changeset
|
60 */ |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
61 public DatacagePairWidget(final Artifact artifact, final User user, final String leftOuts, final String rightOuts, final ListGrid grid, final int maxCount, |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
62 final String msgMaxCount) { |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
63 this.msgMaxCount = msgMaxCount; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
64 this.maxCount = maxCount; |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 this.grid = grid; |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
66 |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
67 final HLayout hLayout = new HLayout(); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
68 this.firstDatacageWidget = new DatacageWidget(artifact, user, leftOuts, "load-system:true", false); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
69 this.secondDatacageWidget = new DatacageWidget(artifact, user, rightOuts, "load-system:true", false); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
70 this.firstDatacageWidget.setIsMutliSelectable(false); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
71 this.secondDatacageWidget.setIsMutliSelectable(false); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
72 |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
73 hLayout.addMember(this.firstDatacageWidget); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
74 hLayout.addMember(this.secondDatacageWidget); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 |
3533
a4b2220e59a6
Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents:
2905
diff
changeset
|
76 // TODO: icon |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
77 final Button plusBtn = new Button(this.MSG.datacage_add_pair()); |
3533
a4b2220e59a6
Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents:
2905
diff
changeset
|
78 plusBtn.setAutoFit(true); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
79 plusBtn.addClickHandler(new ClickHandler() { |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
80 @Override |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
81 public void onClick(final ClickEvent event) { |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
82 plusClicked(); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
84 }); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
85 |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
86 addMember(hLayout); |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
87 addMember(plusBtn); |
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 /** |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
91 * Callback for add-button. |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
92 * Fires to load for every selected element and handler. |
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 public void plusClicked() { |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
95 final ToLoad toLoad1 = this.firstDatacageWidget.getSelection(); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
96 final ToLoad toLoad2 = this.secondDatacageWidget.getSelection(); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
97 |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
98 if (toLoad1 == null || toLoad2 == null || toLoad1.toRecommendations().isEmpty() || toLoad2.toRecommendations().isEmpty()) { |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
99 SC.say(this.MSG.warning_select_two_values()); |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
100 return; |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
101 } |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
102 if (this.grid.getTotalRows() >= this.maxCount) { |
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
103 SC.say(this.msgMaxCount); |
899
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
104 return; |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
105 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
106 |
9133
af73fdd96920
Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents:
8852
diff
changeset
|
107 this.grid.addData(new RecommendationPairRecord(toLoad1.toRecommendations().get(0), toLoad2.toRecommendations().get(0))); |
899
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 } |
6e678b5d08a4
New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |