annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 4c15f98be26c
children f575ff573cbb
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;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
11 import com.google.gwt.core.client.GWT;
3850
8d0ababa2db7 issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3710
diff changeset
12
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.Canvas;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.Label;
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
15 import com.smartgwt.client.widgets.layout.HLayout;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.layout.VLayout;
8612
b5854a9b101c (issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8533
diff changeset
17 import com.smartgwt.client.widgets.layout.LayoutSpacer;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
19 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
20 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
21 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
22 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
23 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.shared.model.IntegerOptionsData;
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7580
diff changeset
26 import org.dive4elements.river.client.shared.model.MultiAttributeData;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.shared.model.StringOptionsData;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
29 import java.util.ArrayList;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
30 import java.util.List;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
31 import java.util.Map;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
32 import java.util.Set;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
33
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 /**
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 */
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public class ParameterMatrixPanel extends AbstractUIProvider {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
39 private static final long serialVersionUID = -5827445025768340371L;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
40
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
41 /** The message class that provides i18n strings. */
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
42 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
43
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
44 private ParameterMatrix matrix;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
45
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 @Override
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 protected Data[] getData() {
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
48 Map<String, List<String>> selection = matrix.getSelection();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
49 Set<Map.Entry<String, List<String>>> entries = selection.entrySet();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
50
7580
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
51 Data[] list = new Data[matrix.getColumnNames().size()];
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
52
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
53 int i = 0;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
54
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
55 for (Map.Entry<String, List<String>> entry: entries) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
56 String value = buildValueString(entry.getValue());
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
57
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
58 DataItem item = new DefaultDataItem(
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
59 entry.getKey(),
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
60 null,
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
61 value);
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
62
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
63 list[i++] = new DefaultData(
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
64 entry.getKey(), null, null, new DataItem[] { item });
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
65 }
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
66
7580
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
67 // To delete old values already given, construct empty ones
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
68 // for all not-specified options.
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
69 for (String colName : matrix.getColumnNames()) {
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
70 boolean found = false;
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
71 for (Data data : list) {
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
72 if (data != null && data.getLabel().equals(colName)) {
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
73 found = true;
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
74 break;
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
75 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
76 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
77 if (!found) {
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
78 // Add an empty data for this.
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
79 list[i++] = new DefaultData(
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
80 colName, null, null, new DataItem[] { });
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
81 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
82 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
83
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
84 return list;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
87
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
88 protected String buildValueString(List<String> values) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
89 StringBuilder sb = new StringBuilder();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
90
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
91 boolean first = true;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
92
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
93 for (String value: values) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
94 if (!first) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
95 sb.append(";");
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
96 }
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
97
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
98 sb.append(value);
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
99
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
100 first = false;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
101 }
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
102
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
103 return sb.toString();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
104 }
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
105
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
106
3850
8d0ababa2db7 issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3710
diff changeset
107 /** Canvas to show in non-edit mode. */
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 @Override
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 public Canvas createOld(DataList dataList) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
110 HLayout layout = new HLayout();
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
111 VLayout vLayout = new VLayout();
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
112
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
113 layout.setWidth(300);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
114 vLayout.setWidth(280);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
115
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
116 for (int i = 0, n = dataList.size(); i < n; i++) {
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
117 HLayout row = new HLayout();
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
118 VLayout cols = new VLayout();
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
119
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
120 row.setWidth(300);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
121 cols.setWidth(100);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
122
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
123 Data data = dataList.get(i);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
124 DataItem[] items = data.getItems();
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
125
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
126 Label parameter = new Label(data.getDescription());
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
127 parameter.setWidth(200);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
128
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
129 for (int j = 0, m = items.length; j < m; j++) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
130 DataItem item = items[j];
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
131 Label value = new Label(item.getLabel());
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
132
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8734
diff changeset
133 value.setValign(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8734
diff changeset
134 com.smartgwt.client.types.VerticalAlignment.TOP);
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
135 value.setWidth(130);
8612
b5854a9b101c (issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8533
diff changeset
136 value.setHeight(15);
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
137
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
138 cols.addMember(value);
8612
b5854a9b101c (issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8533
diff changeset
139 LayoutSpacer spacer = new LayoutSpacer();
b5854a9b101c (issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8533
diff changeset
140 spacer.setHeight(5);
b5854a9b101c (issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8533
diff changeset
141 cols.addMember(spacer);
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
142 }
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
143
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
144 row.addMember(parameter);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
145 row.addMember(cols);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
146
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
147 vLayout.addMember(row);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
148 }
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
149
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
150 Canvas back = getBackButton(dataList.getState());
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
151
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
152 layout.addMember(vLayout);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
153 layout.addMember(back);
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
154
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
155 return layout;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157
3853
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
158
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
159 /** Create the main canvas in the "editing" mode. */
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160 @Override
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 public Canvas create(DataList dataList) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 VLayout v = new VLayout();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 v.addMember(createTitle(dataList));
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
165 matrix = new ParameterMatrix();
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 for (Data data: dataList.getAll()) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168 if (data instanceof IntegerOptionsData) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169 matrix.addColumn((IntegerOptionsData) data);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 }
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
171 else if (data instanceof StringOptionsData) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
172 matrix.addColumn((StringOptionsData) data);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
173 }
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7580
diff changeset
174 else if (data instanceof MultiAttributeData) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7580
diff changeset
175 matrix.addColumn((MultiAttributeData)data);
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7580
diff changeset
176 }
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178
3853
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
179 // If too many items are shown, show it in the helper Panel.
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3853
diff changeset
180 // TODO its not about the datalist, but about the "rows" in the data.
3853
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
181 if (dataList.getAll().size() > 5) {
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3853
diff changeset
182 v.addMember(matrix.create(false));
3853
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
183 }
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
184 else {
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3853
diff changeset
185 helperContainer.addMember(matrix.create(true));
3853
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
186 }
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
187 v.addMember(getNextButton());
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 return v;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192
3853
8ef59abc0fbf Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3850
diff changeset
193 /** Reaturns a label with description of first Data. */
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 protected Canvas createTitle(DataList dataList) {
3710
255decb14439 Improved i18n in minfo code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2539
diff changeset
195 Data data = dataList.get(0);
255decb14439 Improved i18n in minfo code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2539
diff changeset
196 Label label = new Label(data.getDescription());
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 label.setHeight(35);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 return label;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 }
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
201
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
202
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
203 /** Selection shall not be empty. */
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
204 @Override
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
205 public List<String> validate() {
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
206 GWT.log ("validation. validation. validation. ");
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
207 List<String> errors = new ArrayList<String>();
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
208 // Early stop on one (only) error.
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
209 boolean ok = false;
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8734
diff changeset
210 for (Map.Entry<String, List<String>> entry:
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8734
diff changeset
211 matrix.getSelection().entrySet()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8734
diff changeset
212 ) {
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
213 /* single entries are allowed!!
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
214 if (entry.getValue() == null || entry.getValue().size() == 0) {
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
215 errors.add(MESSAGES.error_values_needed());
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
216 return errors;
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
217 }
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
218 */
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
219 if (entry.getValue() != null && entry.getValue().size() > 0) {
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
220 ok = true;
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
221 }
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
222 }
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
223 if (!ok) {
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
224 errors.add(MESSAGES.error_values_needed());
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
225 }
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
226 return errors;
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
227 }
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
228 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
229 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org