Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/HWSDatacagePanel.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 | 5e38e2924c07 |
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; |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
11 import java.util.ArrayList; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
12 import java.util.List; |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
14 import org.dive4elements.river.client.shared.model.Data; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
15 import org.dive4elements.river.client.shared.model.DataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
16 import org.dive4elements.river.client.shared.model.DataList; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
17 import org.dive4elements.river.client.shared.model.DefaultData; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
18 import org.dive4elements.river.client.shared.model.DefaultDataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
19 import org.dive4elements.river.client.shared.model.User; |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
21 import com.google.gwt.core.client.GWT; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
22 import com.smartgwt.client.widgets.Canvas; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
23 import com.smartgwt.client.widgets.Label; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
24 import com.smartgwt.client.widgets.layout.HLayout; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
25 import com.smartgwt.client.widgets.layout.VLayout; |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
27 public class HWSDatacagePanel extends DatacagePanel { |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
29 private static final long serialVersionUID = 1L; |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
31 private static final String OUT = "floodmap_hws_panel"; |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
33 private static final String PARAMETERS = "hws:true;load-system:true"; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
34 |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
35 public HWSDatacagePanel(final User user) { |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
36 super(user, OUT, PARAMETERS, true); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 @Override |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 public List<String> validate() { |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
41 final List<String> errors = new ArrayList<String>(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 return errors; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 @Override |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
47 public Canvas createOld(final DataList dataList) { |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 GWT.log("old datacage##########################################"); |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
49 final HLayout layout = new HLayout(); |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
50 final VLayout vLayout = new VLayout(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 layout.setWidth("400px"); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
53 final Label label = new Label(dataList.getLabel()); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 label.setWidth("200px"); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
56 final int size = dataList.size(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 for (int i = 0; i < size; i++) { |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
58 final Data data = dataList.get(i); |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
59 final DataItem[] items = data.getItems(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
61 for (final DataItem item : items) { |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
62 final HLayout hLayout = new HLayout(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 hLayout.addMember(label); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 hLayout.addMember(new Label(item.getLabel())); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 vLayout.addMember(hLayout); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 vLayout.setWidth("130px"); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
72 final Canvas back = getBackButton(dataList.getState()); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 layout.addMember(label); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 layout.addMember(vLayout); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 layout.addMember(back); |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 return layout; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 @Override |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 protected Data[] getData() { |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
83 final String[] selection = getSelectionTitles(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 String result = ""; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 boolean first = true; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 if (selection != null) { |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
87 for (final String record : selection) { |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 if (first) { |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 result += record; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 first = false; |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
91 } else { |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 result += ";" + record; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 } |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 if (result.length() == 0) { |
5318
7fa94b793cbe
I18n for empty selection in new uesk states.
Raimund Renkert <rrenkert@intevation.de>
parents:
5311
diff
changeset
|
97 result = MSG.notselected(); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 } |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
99 final Data[] data = new Data[1]; |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
100 final DataItem item = new DefaultDataItem("uesk.hws", "uesk.hws", result); |
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
101 data[0] = new DefaultData("uesk.hws", null, null, new DataItem[] { item }); |
5311
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 return data; |
ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 } |
9220
e3c2ae1887e8
Allow to filter contents of datacage on client side.
gernotbelger
parents:
8856
diff
changeset
|
105 } |