Mercurial > dive4elements > river
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 } |