annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacagePanel.java @ 9220:e3c2ae1887e8

Allow to filter contents of datacage on client side. Allow to override column label of datacage Some code cleanup
author gernotbelger
date Wed, 04 Jul 2018 12:00:51 +0200
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;
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
11 import java.util.ArrayList;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
12 import java.util.List;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
13
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
14 import org.dive4elements.river.client.shared.model.Data;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
15 import org.dive4elements.river.client.shared.model.DataList;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
16 import org.dive4elements.river.client.shared.model.ToLoad;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
17 import org.dive4elements.river.client.shared.model.User;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
18
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.Canvas;
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.Label;
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import com.smartgwt.client.widgets.layout.VLayout;
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 /**
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 */
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
26 public abstract class DatacagePanel extends TextProvider {
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 1347
diff changeset
28 private static final long serialVersionUID = 6937994648371673222L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 1347
diff changeset
29
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
30 private String dataName;
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
31
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
32 private final User user;
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
33
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
34 private DatacageWidget widget;
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
35
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
36 private final String outs;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
37
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
38 private final String parameters;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
39
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
40 private final boolean multiSelectable;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
41
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
42 public DatacagePanel(final User user, final String outs, final String parameters, final boolean multiSelectable) {
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
43 this.user = user;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
44 this.outs = outs;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
45 this.parameters = parameters;
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
46 this.multiSelectable = multiSelectable;
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
47 }
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
48
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 @Override
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
50 public Canvas create(final DataList dataList) {
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
51 final Data data = dataList.get(0);
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 this.dataName = data.getLabel();
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
54 createWidget();
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
56 final Canvas label = new Label(data.getDescription());
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
57 final Canvas submit = getNextButton();
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
58 final VLayout layout = new VLayout();
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 label.setHeight(25);
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 layout.addMember(label);
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 layout.addMember(submit);
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 layout.setMembersMargin(10);
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 return layout;
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 }
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
68 private void createWidget() {
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
70 final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.user, this.outs, this.parameters, false);
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
72 this.widget = new DatacageWidget(data);
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
74 this.widget.setHeight100();
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
75
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
76 this.helperContainer.addMember(this.widget);
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
77
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
78 this.widget.setIsMutliSelectable(this.multiSelectable);
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 }
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 @Override
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
82 public List<String> validate() {
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
83 return new ArrayList<String>();
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 848
diff changeset
85
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
86 /**
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
87 * Unclear if this may implement super.getDataName...
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
88 */
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
89 protected final String getMyDataName() {
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
90 return this.dataName;
916
a1a5dc2b9e34 Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
91 }
a1a5dc2b9e34 Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
92
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
93 protected final ToLoad getSelection() {
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
94 return this.widget.getSelection();
916
a1a5dc2b9e34 Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
95 }
a1a5dc2b9e34 Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
96
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
97 protected final String[] getSelectionTitles() {
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
98 return this.widget.getSelectionTitles();
916
a1a5dc2b9e34 Improved the DEM datacage panel to display the DEMs only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
99 }
9220
e3c2ae1887e8 Allow to filter contents of datacage on client side.
gernotbelger
parents: 5993
diff changeset
100 }

http://dive4elements.wald.intevation.org