annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrix.java @ 8870:c26fb37899ca

Introduced groups for modules. Modules marked with the same group-id, will be put together in the ui. Also using now the localization info from the server instead of localizing the modules again on the client side.
author gernotbelger
date Wed, 07 Feb 2018 11:59:13 +0100
parents 5e38e2924c07
children f575ff573cbb
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import com.google.gwt.core.client.GWT;
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
12 import com.google.gwt.event.dom.client.ClickEvent;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
13 import com.google.gwt.event.dom.client.ClickHandler;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import com.google.gwt.user.client.ui.CheckBox;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import com.google.gwt.user.client.ui.Grid;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import com.google.gwt.user.client.ui.Widget;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
18 import com.smartgwt.client.types.ListGridFieldType;
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
19 import com.smartgwt.client.widgets.Canvas;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.Label;
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
21 import com.smartgwt.client.widgets.grid.ListGrid;
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
22 import com.smartgwt.client.widgets.grid.ListGridField;
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
23 import com.smartgwt.client.widgets.grid.ListGridRecord;
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
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 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
28 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
29 import org.dive4elements.river.client.shared.model.MultiDataItem;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
30 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
31
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
32 import java.io.Serializable;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
33 import java.util.ArrayList;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
34 import java.util.HashMap;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
35 import java.util.List;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
36 import java.util.Map;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
37
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
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
49 protected ListGrid listGrid = null;
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
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 protected String name;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 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
57
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 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
59 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
60 }
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 public Column(String name) {
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();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 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
65 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 public void addValue(String label, String value) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 values.put(label, value);
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
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 public String getValue(String label) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 return values.get(label);
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 } // 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
75
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
76 /** The message class that provides i18n strings.*/
f84ed73311f2 Added UI for minfo bed quality calculation and added new services for overview
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2539
diff changeset
77 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
78
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 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
80
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 private Map<String, Column> columns;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 private List<String> columnNames;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 private List<String> valueNames;
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
84 private 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
85
3993
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3982
diff changeset
86 /** Maps column names to list of rows' first fields. */
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 private Map<String, List<String>> selected;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 public ParameterMatrix() {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 super();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 this.columns = new HashMap<String, Column>();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 this.columnNames = new ArrayList<String>();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 this.valueNames = new ArrayList<String>();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 this.selected = new HashMap<String, List<String>>();
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
95 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
96 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 public void addColumn(IntegerOptionsData group) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 String groupTitle = group.getLabel();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
102 Column col = new Column(groupTitle);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
103 DataItem[] items = group.getItems();
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
104
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
105 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
106 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
107 return;
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
108 }
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
109
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
110 for (DataItem item: items) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
111 String title = item.getLabel();
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
112
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
113 if (valueNames.indexOf(title) < 0) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
114 valueNames.add(title);
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
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
117 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
118 }
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
119
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
120 columnNames.add(groupTitle);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
121 columns.put(groupTitle, col);
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
7579
b4b8764ee90d issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
125 public List<String> getColumnNames() {
b4b8764ee90d issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
126 return columnNames;
b4b8764ee90d issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
127 }
b4b8764ee90d issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
128
b4b8764ee90d issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
129
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
130 public void addColumn(StringOptionsData options) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
131 String groupTitle = options.getLabel();
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
132
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
133 Column col = new Column(groupTitle);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
134 DataItem[] items = options.getItems();
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
135
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
136 if (items == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
137 GWT.log("No items found in StringOptionsData '"
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
138 + groupTitle + "'");
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
139 return;
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
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
142 for (DataItem item: items) {
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 String title = item.getLabel();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 if (valueNames.indexOf(title) < 0) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 valueNames.add(title);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 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
150 }
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 columnNames.add(groupTitle);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 columns.put(groupTitle, col);
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
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
156 public void addColumn(MultiAttributeData options) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
157 GWT.log("Add Columns for MultiAttribute data");
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
158 String groupTitle = options.getLabel();
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
159
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
160 Column col = new Column(groupTitle);
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
161 DataItem[] items = options.getItems();
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
162
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
163 if (items == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
164 GWT.log("No items found in StringOptionsData '"
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
165 + groupTitle + "'");
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
166 return;
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
167 }
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
168
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
169 MultiDataItem mItem = (MultiDataItem)items[0];
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
170 for (Map.Entry<String, String> entry: mItem.getValue().entrySet()) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
171 if (entry.getKey().equals("art:value") ||
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
172 entry.getKey().equals("art:label")) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
173 continue;
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
174 }
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
175 attributes.put(entry.getKey(), new ArrayList<String>());
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
176 }
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
177 for (DataItem item: items) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
178 GWT.log("multidataitem: " + item.getLabel());
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
179 String title = item.getLabel();
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
180
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
181 if (valueNames.indexOf(title) < 0) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
182 valueNames.add(title);
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
183 }
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
184 MultiDataItem mi = (MultiDataItem)item;
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
185 Map<String, String> vs = mi.getValue();
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
186 for (Map.Entry<String, String>e: vs.entrySet()) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
187 if (e.getKey().equals("art:value") ||
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
188 e.getKey().equals("art:label")) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
189 continue;
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
190 }
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
191 List<String> data = attributes.get(e.getKey());
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
192 data.add(e.getValue());
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
193 }
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
194 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
195 }
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 columnNames.add(groupTitle);
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
198 columns.put(groupTitle, col);
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
199 }
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
201 public Widget createParameterGrid() {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
202 listGrid = new ListGrid();
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
203 listGrid.setShowAllRecords(true);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
204 listGrid.setWrapCells(true);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
205 listGrid.setShowHeaderContextMenu(false);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
206 listGrid.setCanReorderFields(false);
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
207 // listGrid.setCanSort(false);
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
208 //listGrid.setAutoFitData(Autofit.VERTICAL);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
209 listGrid.setFixedRecordHeights(false);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
210 // 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
211
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
212 ListGridField itemNameField = new ListGridField("itemname", " ");
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
213 ArrayList<ListGridField> fields = new ArrayList<ListGridField>();
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
214 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
215
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
216 for (Map.Entry<String, List<String>> entry: attributes.entrySet()) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
217 ListGridField attrField = new ListGridField(
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
218 entry.getKey(), MESSAGE.getString(entry.getKey()));
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
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
222 for (int i = 0, n = columnNames.size(); i < n; i++) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
223 ListGridField field = new ListGridField(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
224 columnNames.get(i), MESSAGE.getString(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
225 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
226 field.setCanEdit(true);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
227 fields.add(field);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
228 selected.put(columnNames.get(i), new ArrayList<String>());
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
229 }
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
230
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
231 ListGridField[] fieldsArray = fields.toArray(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
232 new ListGridField[fields.size()]);
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
233 listGrid.setFields(fieldsArray);
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
234
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
235 int nVals = valueNames.size();
3858
87e7571970e6 Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3854
diff changeset
236
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
237 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
238 for (int j = 0; j < nVals; j++) {
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
239 String valueName = valueNames.get(j);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
240 ListGridRecord record = new ListGridRecord();
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
241 record.setAttribute("itemname", valueName);
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
242 for (int i = 0, n = columnNames.size(); i < n; i++) {
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
243 String columnName = columnNames.get(i);
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
244 Column col = columns.get(columnName);
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
245 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
246 record.setAttribute(columnName, false);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
247 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
248 }
7826
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
249 for (Map.Entry<String, List<String>> entry: attributes.entrySet()) {
982382d9ea8b Display the additional information extracted from multiattribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 7579
diff changeset
250 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
251 }
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
252 records.add(record);
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
253 }
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
254
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
255 listGrid.setData(records.toArray(new ListGridRecord[records.size()]));
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
256
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
257 return listGrid;
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
258
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
259 }
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
260
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
261
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
262 /**
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
263 * Returns a widget with matrix of checkboxes and labels.
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
264 * @param asListGrid if true, use a ListGrid (for inclusion in SmartGWT
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
265 * containers, avoiding scrollbar-issues.
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
266 */
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
267 public Widget create(boolean asListGrid) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
268 if (asListGrid) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
269 return createParameterGrid();
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
270 }
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
271 Grid grid = new Grid(valueNames.size() + 1, 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
272
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
273 for (int i = 0, n = columnNames.size(); i < n; i++) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
274 String columnName = columnNames.get(i);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275 Column col = columns.get(columnName);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
276
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
277 selected.put(columnName, new ArrayList<String>());
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
278
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
279 grid.setWidget(0, i+1, createLabel(MESSAGE.getString(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
280
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
281 for (int j = 0, o = valueNames.size(); j < o; j++) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
282 String valueName = valueNames.get(j);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
283 String value = col.getValue(valueName);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
284
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
285 if (i == 0) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
286 grid.setWidget(j+1, 0, createLabel(valueName));
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
287 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
288
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
289 if (value != null && value.length() > 0) {
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
290 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
291 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
292 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
293 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
294
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
295 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
296 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
297
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
298
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
299 /** Creates label with given 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
300 protected Label createLabel(String text) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
301 Label label = new Label(text);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
302 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
303
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
304 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
305 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
306
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
307
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
308 /** Create Checkbox for column/value. */
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
309 protected Canvas createCheckBox(final String colName, final String 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
310 CheckBox box = new CheckBox();
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
311 box.addClickHandler(new ClickHandler() {
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
312
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
313 @Override
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
314 public void onClick(ClickEvent event) {
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
315 Map<String, List<String>> selection = getSelection();
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 List<String> values = selection.get(colName);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
318 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
319 values.remove(value);
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
320 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
321 else {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
322 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
323 }
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 });
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
326
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
327 Canvas c = new Canvas();
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
328 c.addChild(box);
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
329 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
330 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
331
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
332
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
333 public Map<String, List<String>> getSelection() {
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
334 if (listGrid == null) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
335 return selected;
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
336 }
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
337
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
338 ListGridRecord[] records = listGrid.getRecords();
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
339 Map<String, List<String>> result = new HashMap<String, List<String>>();
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
340 for (ListGridRecord record : records) {
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
341 for (int i = 0, n = columnNames.size(); i < n; i++) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
342 String columnName = columnNames.get(i);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
343 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
344 if (result.containsKey(columnName)) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
345 result.get(columnName).add(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7826
diff changeset
346 record.getAttribute(columnName + "-value"));
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
347 }
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
348 else {
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
349 List<String> items = new ArrayList<String>();
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
350 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
351 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
352 }
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
353 }
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
354 }
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
355 }
4627
d5821c6f0ab0 Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents: 4184
diff changeset
356 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
357 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
358 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
359 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org