annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterMatrix.java @ 4198:1cdbd8a0c994

Added two new tables ClickableQDTable and ClickableWTable and made Ws and Qs clickable in historical discharge calculation. The new tables define listener interfaces (clicked lower or upper icon) to listen to user clicks. In addition to this, there is an enum ClickMode with NONE, SINGLE and RANGE options, which allows to specifiy, which icons are displayed in the tables. NONE means no icon for user clicks, SINGLE has 1 icon, RANGE 2 icons for lower and upper.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 22 Oct 2012 13:31:25 +0200
parents 03de5c424f95
children d5821c6f0ab0
rev   line source
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 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
4 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
5 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
6 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
7 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
8 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
9
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
10 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
11 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
12 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
13 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
14 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
15 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
16
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
17 import de.intevation.flys.client.client.FLYSConstants;
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.client.shared.model.DataItem;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.shared.model.IntegerOptionsData;
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
20 import de.intevation.flys.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
21
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
22 import java.io.Serializable;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
23 import java.util.ArrayList;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
24 import java.util.HashMap;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
25 import java.util.List;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
26 import java.util.Map;
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
27
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
29 /**
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
30 * 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
31 * as a matrix.
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
32 *
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
33 * 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
34 * 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
35 * shortcomings of GWT/SmartGWT combination.
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
36 */
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public class ParameterMatrix {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
39 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
40
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 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
42
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
43 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
44
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 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
46 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
47
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 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
49 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
50 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 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
53 this();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 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
55 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 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
58 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
59 }
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 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
62 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
63 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 } // 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
65
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
66 /** 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
67 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
68
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 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
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 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
72 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
73 private List<String> valueNames;
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
3993
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3982
diff changeset
75 /** 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
76 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
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 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
79 super();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 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
81 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
82 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
83 this.selected = new HashMap<String, List<String>>();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 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
88 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
89
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
90 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
91 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
92
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
93 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
94 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
95 return;
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
96 }
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
97
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
98 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
99 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
100
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
101 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
102 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
103 }
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 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
106 }
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
107
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
108 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
109 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
110 }
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
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
113 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
114 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
115
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
116 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
117 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
118
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2521
diff changeset
119 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
120 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
121 return;
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 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
125 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
126
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 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
128 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
129 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 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
132 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 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
135 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
136 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
139 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
140 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
141 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
142 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
143 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
144 listGrid.setCanReorderFields(false);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
145 listGrid.setCanSort(false);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
146 //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
147 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
148 // 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
149
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
150 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
151 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
152 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
153
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
154 for (int i = 0, n = columnNames.size(); i < n; i++) {
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
155 ListGridField field = new ListGridField(columnNames.get(i), MESSAGE.getString(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
156 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
157 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
158 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
159 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
160 }
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
161
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
162 ListGridField[] fieldsArray = fields.toArray(new ListGridField[fields.size()]);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
163 listGrid.setFields(fieldsArray);
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
164
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
165 int nVals = valueNames.size();
3858
87e7571970e6 Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3854
diff changeset
166
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
167 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
168 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
169 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
170 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
171 record.setAttribute("itemname", valueName);
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
172 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
173 String columnName = columnNames.get(i);
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
174 Column col = columns.get(columnName);
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
175 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
176 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
177 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
178 }
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
179 records.add(record);
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
180 }
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
181
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
182 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
183
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
184 return listGrid;
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
185
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
186 }
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
187
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
188
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
189 /**
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
190 * 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
191 * @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
192 * containers, avoiding scrollbar-issues.
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
193 */
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
194 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
195 if (asListGrid) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
196 return createParameterGrid();
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
197 }
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
198 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
199
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 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
201 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
202 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
203
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
204 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
205
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
206 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
207
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
208 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
209 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
210 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
211
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
212 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
213 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
214 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216 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
217 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
218 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
219 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
220 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
221
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
222 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
223 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
224
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
225
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
226 /** 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
227 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
228 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
229 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
230
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
231 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
232 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
233
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
234
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
235 /** Create Checkbox for column/value. */
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
236 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
237 CheckBox box = new CheckBox();
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
238 box.addClickHandler(new ClickHandler() {
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
239
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
240 @Override
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
241 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
242 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
243
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
244 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
245 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
246 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
247 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
248 else {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
249 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
250 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
251 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
252 });
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
253
3854
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
254 Canvas c = new Canvas();
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
255 c.addChild(box);
3228d65b0db9 Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3705
diff changeset
256 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
257 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
258
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
259
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
260 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
261 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
262 return selected;
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
263 }
4184
03de5c424f95 Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents: 3993
diff changeset
264
3982
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
265 ListGridRecord[] records = listGrid.getRecords();
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
266 for (ListGridRecord record: records) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
267 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
268 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
269 List<String> chosenItems = selected.get(columnName);
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
270 if (Boolean.valueOf(record.getAttribute(columnName)) == true) {
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
271 chosenItems.add(record.getAttribute(columnName + "-value"));
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
272 }
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
273 }
f9729662f1be improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3858
diff changeset
274 }
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275 return selected;
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 }
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
278 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org