Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java @ 9391:2da486c7c05f
salix historical sounding workflow changed
author | gernotbelger |
---|---|
date | Thu, 09 Aug 2018 17:25:13 +0200 |
parents | f575ff573cbb |
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; |
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 |
9390 | 11 import java.util.ArrayList; |
12 import java.util.List; | |
13 import java.util.Map; | |
14 import java.util.Set; | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
16 import org.dive4elements.river.client.client.FLYSConstants; |
9391 | 17 import org.dive4elements.river.client.client.ui.ParameterMatrix.Column.SelectionMode; |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
18 import org.dive4elements.river.client.shared.model.Data; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
19 import org.dive4elements.river.client.shared.model.DataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
20 import org.dive4elements.river.client.shared.model.DataList; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
21 import org.dive4elements.river.client.shared.model.DefaultData; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
22 import org.dive4elements.river.client.shared.model.DefaultDataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
23 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
|
24 import org.dive4elements.river.client.shared.model.MultiAttributeData; |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
25 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
|
26 |
9390 | 27 import com.google.gwt.core.client.GWT; |
28 import com.smartgwt.client.widgets.Canvas; | |
29 import com.smartgwt.client.widgets.Label; | |
30 import com.smartgwt.client.widgets.layout.HLayout; | |
31 import com.smartgwt.client.widgets.layout.LayoutSpacer; | |
32 import com.smartgwt.client.widgets.layout.VLayout; | |
4184
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; |
9390 | 45 private final String itemnameColTitle; |
9391 | 46 private final SelectionMode mode; |
9390 | 47 |
9391 | 48 public ParameterMatrixPanel(final String itemNameColTitle, final SelectionMode mode) { |
9390 | 49 this.itemnameColTitle = itemNameColTitle; |
9391 | 50 this.mode = mode; |
9390 | 51 } |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
52 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 @Override |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 protected Data[] getData() { |
9390 | 55 final Map<String, List<String>> selection = this.matrix.getSelection(); |
56 final Set<Map.Entry<String, List<String>>> entries = selection.entrySet(); | |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
57 |
9390 | 58 final Data[] list = new Data[this.matrix.getColumnNames().size()]; |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
59 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
60 int i = 0; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
61 |
9390 | 62 for (final Map.Entry<String, List<String>> entry : entries) { |
63 final String value = buildValueString(entry.getValue()); | |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
64 |
9390 | 65 final DataItem item = new DefaultDataItem(entry.getKey(), null, value); |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
66 |
9390 | 67 list[i++] = new DefaultData(entry.getKey(), null, null, new DataItem[] { item }); |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
68 } |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
69 |
7580
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
70 // 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
|
71 // for all not-specified options. |
9390 | 72 for (final String colName : this.matrix.getColumnNames()) { |
7580
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
73 boolean found = false; |
9390 | 74 for (final Data data : list) { |
7580
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
75 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
|
76 found = true; |
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
77 break; |
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
78 } |
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
79 } |
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
80 if (!found) { |
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
81 // Add an empty data for this. |
9390 | 82 list[i++] = new DefaultData(colName, null, null, new DataItem[] {}); |
7580
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 } |
dacc1123075f
issue1063: Always create data for all parameters, even if not specified.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
85 |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
86 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
|
87 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 |
9390 | 89 protected String buildValueString(final List<String> values) { |
90 final StringBuilder sb = new StringBuilder(); | |
2525
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 |
9390 | 94 for (final String value : values) { |
2525
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 |
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 |
9390 | 109 public Canvas createOld(final DataList dataList) { |
110 final HLayout layout = new HLayout(); | |
111 final VLayout vLayout = new VLayout(); | |
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
|
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++) { |
9390 | 117 final HLayout row = new HLayout(); |
118 final VLayout cols = new VLayout(); | |
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
|
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 |
9390 | 123 final Data data = dataList.get(i); |
124 final DataItem[] items = data.getItems(); | |
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
|
125 |
9390 | 126 final Label parameter = new Label(data.getDescription()); |
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
|
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 |
9390 | 129 for (final DataItem item : items) { |
130 final Label value = new Label(item.getLabel()); | |
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 |
9390 | 132 value.setValign(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
|
133 value.setWidth(130); |
8612
b5854a9b101c
(issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8533
diff
changeset
|
134 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
|
135 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
136 cols.addMember(value); |
9390 | 137 final LayoutSpacer spacer = new LayoutSpacer(); |
8612
b5854a9b101c
(issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8533
diff
changeset
|
138 spacer.setHeight(5); |
b5854a9b101c
(issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8533
diff
changeset
|
139 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
|
140 } |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
141 |
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 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
|
143 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
|
144 |
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 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
|
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 |
9390 | 148 final Canvas back = getBackButton(dataList.getState()); |
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
|
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 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
|
151 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
|
152 |
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 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
|
154 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
155 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
156 /** 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
|
157 @Override |
9390 | 158 public Canvas create(final DataList dataList) { |
159 final VLayout v = new VLayout(); | |
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 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
|
161 |
9391 | 162 this.matrix = new ParameterMatrix(this.itemnameColTitle, this.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
|
163 |
9390 | 164 for (final Data data : dataList.getAll()) { |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 if (data instanceof IntegerOptionsData) { |
9390 | 166 this.matrix.addColumn((IntegerOptionsData) data); |
167 } else if (data instanceof StringOptionsData) { | |
168 this.matrix.addColumn((StringOptionsData) data); | |
169 } else if (data instanceof MultiAttributeData) { | |
170 this.matrix.addColumn((MultiAttributeData) data); | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7580
diff
changeset
|
171 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
173 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
174 // 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
|
175 // 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
|
176 if (dataList.getAll().size() > 5) { |
9390 | 177 v.addMember(this.matrix.create(false)); |
178 } else { | |
179 this.helperContainer.addMember(this.matrix.create(true)); | |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
180 } |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
181 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
|
182 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
183 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
|
184 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
185 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
186 /** Reaturns a label with description of first Data. */ |
9390 | 187 protected Canvas createTitle(final DataList dataList) { |
188 final Data data = dataList.get(0); | |
189 final 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
|
190 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
|
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 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
|
193 } |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
194 |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
195 /** 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
|
196 @Override |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
197 public List<String> validate() { |
9390 | 198 GWT.log("validation. validation. validation. "); |
199 final List<String> errors = new ArrayList<String>(); | |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
200 // 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
|
201 boolean ok = false; |
9390 | 202 for (final Map.Entry<String, List<String>> entry : this.matrix.getSelection().entrySet()) { |
203 /* | |
204 * single entries are allowed!! | |
205 * if (entry.getValue() == null || entry.getValue().size() == 0) { | |
206 * errors.add(MESSAGES.error_values_needed()); | |
207 * return errors; | |
208 * } | |
209 */ | |
4627
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
210 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
|
211 ok = true; |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
212 } |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
213 } |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
214 if (!ok) { |
9390 | 215 errors.add(this.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
|
216 } |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
217 return errors; |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
218 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
219 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
220 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |