annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java @ 8644:c15cebcf60da

Remove JavaScript greeting exception. This fixes the Error "$wnd.unHighlight" is not a function exception at startup. This apperantly did not do anything (as the function does not exist) and was not necessary (as everything works as expected) So just throw it away.
author Andre Heinecke <andre.heinecke@intevation.de>
date Fri, 27 Mar 2015 19:10:02 +0100
parents b5854a9b101c
children 4c15f98be26c
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 import com.google.gwt.user.client.ui.HTML;
8d0ababa2db7 issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3710
diff changeset
13
2521
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.Canvas;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 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
16 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
17 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
18 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
19
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
20 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
21 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
22 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
23 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 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
27 import org.dive4elements.river.client.shared.model.MultiAttributeData;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 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
29
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
30 import java.util.ArrayList;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
31 import java.util.List;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
32 import java.util.Map;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
33 import java.util.Set;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
34
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 /**
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 * @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
37 */
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 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
39
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 4003
diff changeset
40 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
41
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
42 /** 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
43 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
44
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
45 private ParameterMatrix matrix;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
46
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 @Override
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 protected Data[] getData() {
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
49 Map<String, List<String>> selection = matrix.getSelection();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
50 Set<Map.Entry<String, List<String>>> entries = selection.entrySet();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
51
7580
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
52 Data[] list = new Data[matrix.getColumnNames().size()];
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
53
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
54 int i = 0;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
55
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
56 for (Map.Entry<String, List<String>> entry: entries) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
57 String value = buildValueString(entry.getValue());
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
58
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
59 DataItem item = new DefaultDataItem(
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
60 entry.getKey(),
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
61 null,
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
62 value);
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
63
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
64 list[i++] = new DefaultData(
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
65 entry.getKey(), null, null, new DataItem[] { item });
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
66 }
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
67
7580
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
68 // 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
69 // 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
70 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
71 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
72 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
73 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
74 found = true;
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
75 break;
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 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
78 if (!found) {
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
79 // 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
80 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
81 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
82 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
83 }
dacc1123075f issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
84
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
85 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
86 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
2525
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
88
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
89 protected String buildValueString(List<String> values) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
90 StringBuilder sb = new StringBuilder();
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
91
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
92 boolean first = true;
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
93
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
94 for (String value: values) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
95 if (!first) {
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
96 sb.append(";");
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
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
99 sb.append(value);
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
100
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
101 first = false;
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
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
104 return sb.toString();
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
da1d897ed66d Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2524
diff changeset
107
3850
8d0ababa2db7 issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3710
diff changeset
108 /** 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
109 @Override
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 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
111 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
112 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
113
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 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
115 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
116
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 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
118 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
119 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
120
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 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
122 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
123
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 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
125 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
126
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 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
128 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
129
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
130 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
131 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
132 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
133
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2525
diff changeset
134 value.setValign(com.smartgwt.client.types.VerticalAlignment.TOP);
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;
3994
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
210 for (Map.Entry<String, List<String>> entry : matrix.getSelection().entrySet()) {
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
211 /* 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
212 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
213 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
214 return errors;
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
215 }
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
216 */
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
217 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
218 ok = true;
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
219 }
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
220 }
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
221 if (!ok) {
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
222 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
223 }
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
224 return errors;
cc0b31dc2789 fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
225 }
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
226 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
227 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org