annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePairWidget.java @ 8852:8f6d6d26e96f

Refaktored the DatacageTwinPanel so it is reusable.
author gernotbelger
date Thu, 18 Jan 2018 18:32:30 +0100
parents ea9eef426962
children af73fdd96920
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.
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 5993
diff changeset
52 * @param leftOuts outs to query the left datacage with.
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 5993
diff changeset
53 * @param rightOuts outs to query the right datacage with.
1284
cdb1505a32f1 Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1283
diff changeset
54 * @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
55 */
cdb1505a32f1 Fix messed up indentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1283
diff changeset
56 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
57 User user,
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 5993
diff changeset
58 String leftOuts,
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 5993
diff changeset
59 String rightOuts,
1283
e8bb11976c70 Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
60 ListGrid grid) {
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 this.grid = grid;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62
1283
e8bb11976c70 Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
63 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
64 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
65 artifact,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1301
diff changeset
66 user,
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 5993
diff changeset
67 leftOuts,
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1301
diff changeset
68 "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
69 false);
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1301
diff changeset
70 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
71 artifact,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1301
diff changeset
72 user,
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents: 5993
diff changeset
73 rightOuts,
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1301
diff changeset
74 "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
75 false);
1283
e8bb11976c70 Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
76 firstDatacageWidget.setIsMutliSelectable(false);
e8bb11976c70 Neaten certain GUI aspects with W-Diff waterlevel-pair selection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
77 secondDatacageWidget.setIsMutliSelectable(false);
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 hLayout.addMember(firstDatacageWidget);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 hLayout.addMember(secondDatacageWidget);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81
3533
a4b2220e59a6 Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
82 // TODO: icon
a4b2220e59a6 Change button title in DatacagePairWidget (#746).
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
83 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
84 plusBtn.setAutoFit(true);
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85 plusBtn.addClickHandler(new ClickHandler() {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 @Override
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 public void onClick(ClickEvent event) {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 plusClicked();
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
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92 addMember(hLayout);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 addMember(plusBtn);
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
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 /**
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 * Callback for add-button.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 * Fires to load for every selected element and handler.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 public void plusClicked() {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 ToLoad toLoad1 = firstDatacageWidget.getSelection();
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103 ToLoad toLoad2 = secondDatacageWidget.getSelection();
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104
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
105 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
106 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
107 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
108 SC.say(MSG.warning_select_two_values());
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
109 return;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
112 grid.addData(new RecommendationPairRecord(
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
113 toLoad1.toRecommendations().get(0),
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
114 toLoad2.toRecommendations().get(0)));
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org