Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrix.java @ 7762:2a97d9c3413a
Use the river model_uuid as value for data items.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 27 Feb 2014 16:40:33 +0100 |
parents | b4b8764ee90d |
children | 982382d9ea8b |
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; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
28 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
|
29 |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
30 import java.io.Serializable; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
31 import java.util.ArrayList; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
32 import java.util.HashMap; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
33 import java.util.List; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
34 import java.util.Map; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
35 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
37 /** |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
38 * 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
|
39 * as a matrix. |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
40 * |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
41 * 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
|
42 * 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
|
43 * shortcomings of GWT/SmartGWT combination. |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
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 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
|
46 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
47 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
|
48 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 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
|
50 |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
51 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
|
52 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 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
|
54 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
|
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 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
|
57 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
|
58 } |
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 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
|
61 this(); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 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
|
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 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 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
|
66 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
|
67 } |
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 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
|
70 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
|
71 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 } // 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
|
73 |
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
|
74 /** 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
|
75 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
|
76 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 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
|
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 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
|
80 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
|
81 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
|
82 |
3993 | 83 /** 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
|
84 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
|
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 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
|
87 super(); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 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
|
89 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
|
90 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
|
91 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
|
92 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 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
|
96 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
|
97 |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
98 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
|
99 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
|
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 (items == null) { |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
102 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
|
103 return; |
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 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
106 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
|
107 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
|
108 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
109 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
|
110 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
|
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 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
|
114 } |
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 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
|
117 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
|
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 |
7579
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
121 public List<String> getColumnNames() { |
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
122 return columnNames; |
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
123 } |
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
124 |
b4b8764ee90d
issue1063: Expose column names in ParameterMatrix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5993
diff
changeset
|
125 |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
126 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
|
127 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
|
128 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
129 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
|
130 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
|
131 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
132 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
|
133 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
|
134 return; |
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 |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
137 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
|
138 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
|
139 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 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
|
141 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
|
142 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
143 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
144 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
|
145 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 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
|
148 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
|
149 } |
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 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
152 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 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
|
158 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
|
159 //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
|
160 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
|
161 // 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
|
162 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 } |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
174 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
175 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
|
176 listGrid.setFields(fieldsArray); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
177 |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
178 int nVals = valueNames.size(); |
3858
87e7571970e6
Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3854
diff
changeset
|
179 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
180 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
|
181 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
|
182 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
|
183 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
|
184 record.setAttribute("itemname", valueName); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
185 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
|
186 String columnName = columnNames.get(i); |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
187 Column col = columns.get(columnName); |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
188 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
|
189 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
|
190 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
|
191 } |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
192 records.add(record); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
193 } |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
194 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
195 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
|
196 |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
197 return listGrid; |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
198 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
199 } |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
200 |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
201 |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
202 /** |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
203 * 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
|
204 * @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
|
205 * containers, avoiding scrollbar-issues. |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
206 */ |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
207 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
|
208 if (asListGrid) { |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
209 return createParameterGrid(); |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
210 } |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
211 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
|
212 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
213 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
|
214 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
|
215 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
|
216 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
217 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
|
218 |
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
|
219 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
|
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 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
|
222 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
|
223 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
|
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 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
|
226 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
|
227 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
228 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
229 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
|
230 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
|
231 } |
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 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
235 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
|
236 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
237 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
238 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
239 /** 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
|
240 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
|
241 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
|
242 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
|
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 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
|
245 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
246 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
247 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
248 /** Create Checkbox for column/value. */ |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
249 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
|
250 CheckBox box = new CheckBox(); |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
251 box.addClickHandler(new ClickHandler() { |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
252 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
253 @Override |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
254 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
|
255 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
|
256 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
257 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
|
258 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
|
259 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
|
260 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
261 else { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
262 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
|
263 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
264 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
265 }); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
266 |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
267 Canvas c = new Canvas(); |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
268 c.addChild(box); |
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3705
diff
changeset
|
269 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
|
270 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
271 |
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 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
|
274 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
|
275 return selected; |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
276 } |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
3993
diff
changeset
|
277 |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
278 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
|
279 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
|
280 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
|
281 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
|
282 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
|
283 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
|
284 if (result.containsKey(columnName)) { |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
285 result.get(columnName).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
|
286 } |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
287 else { |
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
288 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
|
289 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
|
290 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
|
291 } |
3982
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
292 } |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
293 } |
f9729662f1be
improvements on issue860: display parameter matrix as grid list in helperpane.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
294 } |
4627
d5821c6f0ab0
Fixed validation in parameter matrix panel. Single selections are allowed now.
Raimund Renkert <rrenkert@intevation.de>
parents:
4184
diff
changeset
|
295 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
|
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 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |