Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java @ 9390:f575ff573cbb
"Name der Peilung" columname minfo.
author | gernotbelger |
---|---|
date | Thu, 09 Aug 2018 15:22:31 +0200 |
parents | 5e38e2924c07 |
children | 2da486c7c05f |
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; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
17 import org.dive4elements.river.client.shared.model.Data; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
18 import org.dive4elements.river.client.shared.model.DataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
19 import org.dive4elements.river.client.shared.model.DataList; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
20 import org.dive4elements.river.client.shared.model.DefaultData; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
21 import org.dive4elements.river.client.shared.model.DefaultDataItem; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
22 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
|
23 import org.dive4elements.river.client.shared.model.MultiAttributeData; |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
24 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
|
25 |
9390 | 26 import com.google.gwt.core.client.GWT; |
27 import com.smartgwt.client.widgets.Canvas; | |
28 import com.smartgwt.client.widgets.Label; | |
29 import com.smartgwt.client.widgets.layout.HLayout; | |
30 import com.smartgwt.client.widgets.layout.LayoutSpacer; | |
31 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
|
32 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 /** |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 * @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
|
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 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
|
37 |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
38 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
|
39 |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
40 /** 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
|
41 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
|
42 |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
43 private ParameterMatrix matrix; |
9390 | 44 private final String itemnameColTitle; |
45 | |
46 public ParameterMatrixPanel(final String itemNameColTitle) { | |
47 this.itemnameColTitle = itemNameColTitle; | |
48 } | |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
49 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 @Override |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 protected Data[] getData() { |
9390 | 52 final Map<String, List<String>> selection = this.matrix.getSelection(); |
53 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
|
54 |
9390 | 55 final Data[] list = new Data[this.matrix.getColumnNames().size()]; |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
56 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
57 int i = 0; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
58 |
9390 | 59 for (final Map.Entry<String, List<String>> entry : entries) { |
60 final String value = buildValueString(entry.getValue()); | |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
61 |
9390 | 62 final DataItem item = new DefaultDataItem(entry.getKey(), null, value); |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
63 |
9390 | 64 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
|
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. |
9390 | 69 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
|
70 boolean found = false; |
9390 | 71 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
|
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. |
9390 | 79 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
|
80 } |
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 |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
83 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
|
84 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 |
9390 | 86 protected String buildValueString(final List<String> values) { |
87 final StringBuilder sb = new StringBuilder(); | |
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 boolean first = true; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
90 |
9390 | 91 for (final String value : values) { |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
92 if (!first) { |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
93 sb.append(";"); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
94 } |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
95 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
96 sb.append(value); |
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 first = false; |
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 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
101 return sb.toString(); |
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 |
3850
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
104 /** 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
|
105 @Override |
9390 | 106 public Canvas createOld(final DataList dataList) { |
107 final HLayout layout = new HLayout(); | |
108 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
|
109 |
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 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
|
111 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
|
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 for (int i = 0, n = dataList.size(); i < n; i++) { |
9390 | 114 final HLayout row = new HLayout(); |
115 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
|
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 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
|
118 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
|
119 |
9390 | 120 final Data data = dataList.get(i); |
121 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
|
122 |
9390 | 123 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
|
124 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
|
125 |
9390 | 126 for (final DataItem item : items) { |
127 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
|
128 |
9390 | 129 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
|
130 value.setWidth(130); |
8612
b5854a9b101c
(issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8533
diff
changeset
|
131 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
|
132 |
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 cols.addMember(value); |
9390 | 134 final LayoutSpacer spacer = new LayoutSpacer(); |
8612
b5854a9b101c
(issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8533
diff
changeset
|
135 spacer.setHeight(5); |
b5854a9b101c
(issue869) Add spacer for multiline items
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8533
diff
changeset
|
136 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
|
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 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
139 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
|
140 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
|
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 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
|
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 |
9390 | 145 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
|
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 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
|
148 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
|
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 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
|
151 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
152 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
153 /** 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
|
154 @Override |
9390 | 155 public Canvas create(final DataList dataList) { |
156 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
|
157 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
|
158 |
9390 | 159 this.matrix = new ParameterMatrix(this.itemnameColTitle); |
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 |
9390 | 161 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
|
162 if (data instanceof IntegerOptionsData) { |
9390 | 163 this.matrix.addColumn((IntegerOptionsData) data); |
164 } else if (data instanceof StringOptionsData) { | |
165 this.matrix.addColumn((StringOptionsData) data); | |
166 } else if (data instanceof MultiAttributeData) { | |
167 this.matrix.addColumn((MultiAttributeData) data); | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7580
diff
changeset
|
168 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
171 // 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
|
172 // 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
|
173 if (dataList.getAll().size() > 5) { |
9390 | 174 v.addMember(this.matrix.create(false)); |
175 } else { | |
176 this.helperContainer.addMember(this.matrix.create(true)); | |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
177 } |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
178 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
|
179 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
180 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
|
181 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
182 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
183 /** Reaturns a label with description of first Data. */ |
9390 | 184 protected Canvas createTitle(final DataList dataList) { |
185 final Data data = dataList.get(0); | |
186 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
|
187 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
|
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 label; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
190 } |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
191 |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
192 /** 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
|
193 @Override |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
194 public List<String> validate() { |
9390 | 195 GWT.log("validation. validation. validation. "); |
196 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
|
197 // 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
|
198 boolean ok = false; |
9390 | 199 for (final Map.Entry<String, List<String>> entry : this.matrix.getSelection().entrySet()) { |
200 /* | |
201 * single entries are allowed!! | |
202 * if (entry.getValue() == null || entry.getValue().size() == 0) { | |
203 * errors.add(MESSAGES.error_values_needed()); | |
204 * return errors; | |
205 * } | |
206 */ | |
4627
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
207 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
|
208 ok = true; |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
209 } |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
210 } |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
211 if (!ok) { |
9390 | 212 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
|
213 } |
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 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
216 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
217 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |