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 }

http://dive4elements.wald.intevation.org