annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java @ 1261:87b6a93db523

Cleaned imports. flys-client/trunk@2789 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 19 Sep 2011 15:11:24 +0000
parents 39a39e9be5af
children e8bb11976c70
rev   line source
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 import com.smartgwt.client.widgets.Button;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 import com.smartgwt.client.widgets.layout.VLayout;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.layout.HLayout;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.events.ClickHandler;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.events.ClickEvent;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.grid.ListGrid;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.grid.ListGridRecord;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import de.intevation.flys.client.shared.model.Artifact;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.client.shared.model.User;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.client.shared.model.ToLoad;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.client.client.FLYSConstants;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
22 import de.intevation.flys.client.shared.model.Recommendation;
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23
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 /**
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
26 * Widget showing two Datacages and a plus-button.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
27 * Insert a record into a listgrid when plus-button clicked.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
28 */
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 public class DatacagePairWidget
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 extends VLayout
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 protected FLYSConstants messages =
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 GWT.create(FLYSConstants.class);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 /** The "remote" ListGrid to insert data to when add-button is clicked. */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 protected ListGrid grid;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 /** First attribute-name for StringPairRecord. */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 protected static final String ATTRIBUTE_FIRST = "first";
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 /** Second attribute-name for StringPairRecord. */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 protected static final String ATTRIBUTE_SECOND = "second";
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 /** First (upper) DataCage Grid. */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 protected DatacageWidget firstDatacageWidget;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 /** Second (lower) DataCage Grid. */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 protected DatacageWidget secondDatacageWidget;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 /**
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 * Two strings to be displayed in a GridList.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
54 protected class RecommendationPairRecord extends ListGridRecord {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
55 Recommendation first;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
56 Recommendation second;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
57
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
58 public RecommendationPairRecord() {
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
61 public RecommendationPairRecord(Recommendation first, Recommendation second) {
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 setFirst(first);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 setSecond(second);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
67 public void setFirst(Recommendation first) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
68 this.first = first;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
69 setAttribute(ATTRIBUTE_FIRST, first.getFactory() + first.getIDs());
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
73 public void setSecond(Recommendation second) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
74 this.second = second;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
75 setAttribute(ATTRIBUTE_SECOND, second.getFactory() + second.getIDs());
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
77
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
78 public Recommendation getFirst() {return first;}
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
79 public Recommendation getSecond() {return second;}
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82
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 * @param artifact Artifact to query datacage with.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 * @param user User to query datacage with.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 * @param outs outs to query datacage with.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 * @param grid Grid into which to insert selection of pairs.
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 public DatacagePairWidget(Artifact artifact, User user, String outs,
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 ListGrid grid) {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92 this.grid = grid;
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 HLayout hLayout = new HLayout();
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 firstDatacageWidget = new DatacageWidget(artifact, user, outs, false);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 hLayout.addMember(firstDatacageWidget);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 secondDatacageWidget = new DatacageWidget(artifact, user, outs, false);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 hLayout.addMember(secondDatacageWidget);
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 // TODO: i18n + icon
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102 Button plusBtn = new Button("+");
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103 plusBtn.addClickHandler(new ClickHandler() {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104 @Override
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105 public void onClick(ClickEvent event) {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106 plusClicked();
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107 }
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 addMember(hLayout);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111 addMember(plusBtn);
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 }
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 /**
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 * Callback for add-button.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 * Fires to load for every selected element and handler.
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 */
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 public void plusClicked() {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120 ToLoad toLoad1 = firstDatacageWidget.getSelection();
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 ToLoad toLoad2 = secondDatacageWidget.getSelection();
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
123 // TODO further sanitize (toRecommendations.length)
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124 if (toLoad1 == null || toLoad2 == null) {
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125 return;
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
128 grid.addData(new RecommendationPairRecord(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
129 toLoad1.toRecommendations().get(0),
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 899
diff changeset
130 toLoad2.toRecommendations().get(0)));
899
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132 }
6e678b5d08a4 New widget for future use.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org