Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrix.java @ 9661:9b8ba3b83a15
Importer (s/u-info) vegetation zones: new database column in vegetation_type table for german type name,
localized vegetation type names by querying the database instead of translating by resource property,
detecting and cancelling the import of a second vegetation zone file for a river,
detecting, logging, cancelling in case of wrong column titles,
detecting, logging and ignoring lines with missing (color) values,
comparing vegetation zone name and class with the database and logging+ignoring in case of inconsistencies,
starting the most elevated zone with 0 instead of -1 overflow days
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 16:38:12 +0100 |
parents | 2da486c7c05f |
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.io.Serializable; |
12 import java.util.ArrayList; | |
13 import java.util.HashMap; | |
14 import java.util.List; | |
15 import java.util.Map; | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
17 import org.dive4elements.river.client.client.FLYSConstants; |
9391 | 18 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
|
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.IntegerOptionsData; |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
21 import org.dive4elements.river.client.shared.model.MultiAttributeData; |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
22 import org.dive4elements.river.client.shared.model.MultiDataItem; |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
23 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
|
24 |
9390 | 25 import com.google.gwt.core.client.GWT; |
26 import com.google.gwt.event.dom.client.ClickEvent; | |
27 import com.google.gwt.event.dom.client.ClickHandler; | |
28 import com.google.gwt.user.client.ui.CheckBox; | |
29 import com.google.gwt.user.client.ui.Grid; | |
30 import com.google.gwt.user.client.ui.Widget; | |
31 import com.smartgwt.client.types.ListGridFieldType; | |
32 import com.smartgwt.client.widgets.Canvas; | |
33 import com.smartgwt.client.widgets.Label; | |
34 import com.smartgwt.client.widgets.grid.ListGrid; | |
35 import com.smartgwt.client.widgets.grid.ListGridField; | |
36 import com.smartgwt.client.widgets.grid.ListGridRecord; | |
9391 | 37 import com.smartgwt.client.widgets.grid.events.ChangedHandler; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
39 /** |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
40 * Some parameters take the form of on/off options that can also be seen |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
41 * as a matrix. |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
42 * |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
43 * This class helps to survive the underlying objects and create a visual |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
44 * representation of this matrix. Later can happen in two ways to overcome |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
45 * shortcomings of GWT/SmartGWT combination. |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
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 public class ParameterMatrix { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 |
9391 | 49 protected static ListGrid listGrid = null; |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
50 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 public static class Column implements Serializable { |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
52 |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
53 private static final long serialVersionUID = -3493426383086860118L; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
54 |
9391 | 55 public static enum SelectionMode { |
56 single, multi | |
57 } | |
58 | |
9390 | 59 protected String name; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 protected Map<String, String> values; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 private Column() { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 this.values = new HashMap<String, String>(); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 |
9390 | 66 public Column(final String name) { |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 this(); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 this.name = name; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 |
9390 | 71 public void addValue(final String label, final String value) { |
72 this.values.put(label, value); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 |
9390 | 75 public String getValue(final String label) { |
76 return this.values.get(label); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 } // end of class Column |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
9390 | 80 /** The message class that provides i18n strings. */ |
3705
f84ed73311f2
Added UI for minfo bed quality calculation and added new services for overview
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2539
diff
changeset
|
81 protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 public static final int CELL_HEIGHT = 25; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 |
9390 | 85 private final Map<String, Column> columns; |
86 private final List<String> columnNames; | |
87 private final List<String> valueNames; | |
88 private final Map<String, List<String>> attributes; | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 |
3993 | 90 /** Maps column names to list of rows' first fields. */ |
9390 | 91 private final Map<String, List<String>> selected; |
92 private final String itemname; | |
9391 | 93 private final SelectionMode 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
|
94 |
9391 | 95 public ParameterMatrix(final String itemnameColTitle, final SelectionMode 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
|
96 super(); |
9391 | 97 this.mode = mode; |
9390 | 98 this.itemname = itemnameColTitle; |
99 this.columns = new HashMap<String, Column>(); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 this.columnNames = new ArrayList<String>(); |
9390 | 101 this.valueNames = new ArrayList<String>(); |
102 this.selected = new HashMap<String, List<String>>(); | |
103 this.attributes = new HashMap<String, List<String>>(); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 |
9390 | 106 public void addColumn(final IntegerOptionsData group) { |
107 final String groupTitle = group.getLabel(); | |
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 |
9390 | 109 final Column col = new Column(groupTitle); |
110 final DataItem[] items = group.getItems(); | |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
111 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
112 if (items == null) { |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
113 GWT.log("No items found in StringOptionsData '" + groupTitle + "'"); |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
114 return; |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
115 } |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
116 |
9390 | 117 for (final DataItem item : items) { |
118 final String title = item.getLabel(); | |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
119 |
9390 | 120 if (this.valueNames.indexOf(title) < 0) { |
121 this.valueNames.add(title); | |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
122 } |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
123 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
124 col.addValue(item.getLabel(), item.getStringValue()); |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
125 } |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
126 |
9390 | 127 this.columnNames.add(groupTitle); |
128 this.columns.put(groupTitle, col); | |
7579
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
129 } |
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
130 |
9390 | 131 public List<String> getColumnNames() { |
132 return this.columnNames; | |
133 } | |
7579
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
134 |
9390 | 135 public void addColumn(final StringOptionsData options) { |
136 final String groupTitle = options.getLabel(); | |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
137 |
9390 | 138 final Column col = new Column(groupTitle); |
139 final DataItem[] items = options.getItems(); | |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
140 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
141 if (items == null) { |
9390 | 142 GWT.log("No items found in StringOptionsData '" + groupTitle + "'"); |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
143 return; |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
144 } |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
145 |
9390 | 146 for (final DataItem item : items) { |
147 final String title = item.getLabel(); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 |
9390 | 149 if (this.valueNames.indexOf(title) < 0) { |
150 this.valueNames.add(title); | |
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 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 col.addValue(item.getLabel(), item.getStringValue()); |
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 |
9390 | 156 this.columnNames.add(groupTitle); |
157 this.columns.put(groupTitle, col); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 |
9390 | 160 public void addColumn(final MultiAttributeData options) { |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
161 GWT.log("Add Columns for MultiAttribute data"); |
9390 | 162 final String groupTitle = options.getLabel(); |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
163 |
9390 | 164 final Column col = new Column(groupTitle); |
165 final DataItem[] items = options.getItems(); | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
166 |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
167 if (items == null) { |
9390 | 168 GWT.log("No items found in StringOptionsData '" + groupTitle + "'"); |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
169 return; |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
170 } |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
171 |
9390 | 172 final MultiDataItem mItem = (MultiDataItem) items[0]; |
173 for (final Map.Entry<String, String> entry : mItem.getValue().entrySet()) { | |
174 if (entry.getKey().equals("art:value") || entry.getKey().equals("art:label")) { | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
175 continue; |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
176 } |
9390 | 177 this.attributes.put(entry.getKey(), new ArrayList<String>()); |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
178 } |
9390 | 179 for (final DataItem item : items) { |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
180 GWT.log("multidataitem: " + item.getLabel()); |
9390 | 181 final String title = item.getLabel(); |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
182 |
9390 | 183 if (this.valueNames.indexOf(title) < 0) { |
184 this.valueNames.add(title); | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
185 } |
9390 | 186 final MultiDataItem mi = (MultiDataItem) item; |
187 final Map<String, String> vs = mi.getValue(); | |
188 for (final Map.Entry<String, String> e : vs.entrySet()) { | |
189 if (e.getKey().equals("art:value") || e.getKey().equals("art:label")) { | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
190 continue; |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
191 } |
9390 | 192 final List<String> data = this.attributes.get(e.getKey()); |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
193 data.add(e.getValue()); |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
194 } |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
195 col.addValue(item.getLabel(), mi.getValue().get("art:value")); |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
196 } |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
197 |
9390 | 198 this.columnNames.add(groupTitle); |
199 this.columns.put(groupTitle, col); | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
200 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
201 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
202 public Widget createParameterGrid() { |
9390 | 203 this.listGrid = new ListGrid(); |
204 this.listGrid.setShowAllRecords(true); | |
205 this.listGrid.setWrapCells(true); | |
206 this.listGrid.setShowHeaderContextMenu(false); | |
207 this.listGrid.setCanReorderFields(false); | |
208 // listGrid.setCanSort(false); | |
209 // listGrid.setAutoFitData(Autofit.VERTICAL); | |
210 this.listGrid.setFixedRecordHeights(false); | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
211 // TODO: Then also need "autofit" (when wrapping) |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
212 |
9390 | 213 final ListGridField itemNameField = new ListGridField("itemname", this.itemname); |
214 final ArrayList<ListGridField> fields = new ArrayList<ListGridField>(); | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
215 fields.add(itemNameField); |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
216 |
9390 | 217 for (final Map.Entry<String, List<String>> entry : this.attributes.entrySet()) { |
218 final ListGridField attrField = new ListGridField(entry.getKey(), this.MESSAGE.getString(entry.getKey())); | |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
219 fields.add(attrField); |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
220 } |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
221 |
9390 | 222 for (int i = 0, n = this.columnNames.size(); i < n; i++) { |
223 final ListGridField field = new ListGridField(this.columnNames.get(i), this.MESSAGE.getString(this.columnNames.get(i))); | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
224 field.setType(ListGridFieldType.BOOLEAN); |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
225 field.setCanEdit(true); |
9391 | 226 if (this.mode == SelectionMode.single) { |
227 field.addChangedHandler(new ChangedHandler() { | |
228 @Override | |
229 public void onChanged(final com.smartgwt.client.widgets.grid.events.ChangedEvent event) { | |
230 final int rowNumber = event.getRowNum(); | |
231 final Boolean value = (Boolean) event.getValue(); | |
232 final int colNr = event.getColNum(); | |
233 final String attr = ParameterMatrix.listGrid.getFieldName(colNr); | |
234 if (value) { | |
235 final ListGridRecord[] records = ParameterMatrix.listGrid.getRecords(); | |
236 for (int i = 0; i < records.length; i++) { | |
237 final ListGridRecord r = records[i]; | |
238 if (i != rowNumber) { | |
239 if (r.getAttributeAsBoolean(attr)) | |
240 r.setAttribute(attr, false); | |
241 } | |
242 } | |
243 } | |
244 } | |
245 }); | |
246 } | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
247 fields.add(field); |
9390 | 248 this.selected.put(this.columnNames.get(i), new ArrayList<String>()); |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
249 } |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
250 |
9390 | 251 final ListGridField[] fieldsArray = fields.toArray(new ListGridField[fields.size()]); |
252 this.listGrid.setFields(fieldsArray); | |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
253 |
9390 | 254 final int nVals = this.valueNames.size(); |
3858
87e7571970e6
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3854
diff
changeset
|
255 |
9390 | 256 final ArrayList<ListGridRecord> records = new ArrayList<ListGridRecord>(); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
257 for (int j = 0; j < nVals; j++) { |
9390 | 258 final String valueName = this.valueNames.get(j); |
259 final ListGridRecord record = new ListGridRecord(); | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
260 record.setAttribute("itemname", valueName); |
9390 | 261 for (int i = 0, n = this.columnNames.size(); i < n; i++) { |
262 final String columnName = this.columnNames.get(i); | |
263 final Column col = this.columns.get(columnName); | |
264 final String value = col.getValue(valueName); | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
265 record.setAttribute(columnName, false); |
9390 | 266 record.setAttribute(columnName + "-value", value); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
267 } |
9390 | 268 for (final Map.Entry<String, List<String>> entry : this.attributes.entrySet()) { |
7826
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
269 record.setAttribute(entry.getKey(), entry.getValue().get(j)); |
982382d9ea8b
Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents:
7579
diff
changeset
|
270 } |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
271 records.add(record); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
272 } |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
273 |
9390 | 274 this.listGrid.setData(records.toArray(new ListGridRecord[records.size()])); |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
275 |
9390 | 276 return this.listGrid; |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
277 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
278 } |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
279 |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
280 /** |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
281 * Returns a widget with matrix of checkboxes and labels. |
9390 | 282 * |
283 * @param asListGrid | |
284 * if true, use a ListGrid (for inclusion in SmartGWT | |
285 * containers, avoiding scrollbar-issues. | |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
286 */ |
9390 | 287 public Widget create(final boolean asListGrid) { |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
288 if (asListGrid) { |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
289 return createParameterGrid(); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
290 } |
9390 | 291 final Grid grid = new Grid(this.valueNames.size() + 1, this.columnNames.size() + 1); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
292 |
9390 | 293 for (int i = 0, n = this.columnNames.size(); i < n; i++) { |
294 final String columnName = this.columnNames.get(i); | |
295 final Column col = this.columns.get(columnName); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
296 |
9390 | 297 this.selected.put(columnName, new ArrayList<String>()); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
298 |
9390 | 299 grid.setWidget(0, i + 1, createLabel(this.MESSAGE.getString(columnName))); |
300 | |
301 for (int j = 0, o = this.valueNames.size(); j < o; j++) { | |
302 final String valueName = this.valueNames.get(j); | |
303 final String value = col.getValue(valueName); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
304 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
305 if (i == 0) { |
9390 | 306 grid.setWidget(j + 1, 0, createLabel(valueName)); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
307 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
308 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
309 if (value != null && value.length() > 0) { |
9390 | 310 grid.setWidget(j + 1, i + 1, createCheckBox(columnName, value)); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
311 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
312 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
313 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
314 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
315 return grid; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
316 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
317 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
318 /** Creates label with given text. */ |
9390 | 319 protected Label createLabel(final String text) { |
320 final Label label = new Label(text); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
321 label.setHeight(CELL_HEIGHT); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
322 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
323 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
|
324 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
325 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
326 /** Create Checkbox for column/value. */ |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
327 protected Canvas createCheckBox(final String colName, final String value) { |
9390 | 328 final CheckBox box = new CheckBox(); |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
329 box.addClickHandler(new ClickHandler() { |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
330 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
331 @Override |
9390 | 332 public void onClick(final ClickEvent event) { |
333 final Map<String, List<String>> selection = getSelection(); | |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
334 |
9390 | 335 final List<String> values = selection.get(colName); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
336 if (values.indexOf(value) >= 0) { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
337 values.remove(value); |
9390 | 338 } else { |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
339 values.add(value); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
340 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
341 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
342 }); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
343 |
9390 | 344 final Canvas c = new Canvas(); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
345 c.addChild(box); |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
346 return c; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
347 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
348 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
349 public Map<String, List<String>> getSelection() { |
9390 | 350 if (this.listGrid == null) { |
351 return this.selected; | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
352 } |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
353 |
9390 | 354 final ListGridRecord[] records = this.listGrid.getRecords(); |
355 final Map<String, List<String>> result = new HashMap<String, List<String>>(); | |
356 for (final ListGridRecord record : records) { | |
357 for (int i = 0, n = this.columnNames.size(); i < n; i++) { | |
358 final String columnName = this.columnNames.get(i); | |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
359 if (Boolean.valueOf(record.getAttribute(columnName)) == true) { |
4627
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
360 if (result.containsKey(columnName)) { |
9390 | 361 result.get(columnName).add(record.getAttribute(columnName + "-value")); |
362 } else { | |
363 final List<String> items = new ArrayList<String>(); | |
4627
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
364 items.add(record.getAttribute(columnName + "-value")); |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
365 result.put(columnName, items); |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
366 } |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
367 } |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
368 } |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
369 } |
4627
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
370 return result; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
371 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
372 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
373 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |