Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterMatrixPanel.java @ 4253:a1bc5b8cff0f
Refactor GaugePanel to create it's own SectionStackSection
The GaugePanel constructor now creates a SectionStackSection instead of
using a provided one.
Improve the rendering of the GaugePanel by having access to the SmartGWT wrapper
(WidgetCanvas) object for the GWT Tree (GaugeTree) directly.
Add methods to close and open the section. Also add a getter for the section.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Thu, 25 Oct 2012 13:52:58 +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 |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
3 import com.google.gwt.core.client.GWT; |
3850
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
4 import com.google.gwt.user.client.ui.HTML; |
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
5 |
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.smartgwt.client.widgets.Canvas; |
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.smartgwt.client.widgets.Label; |
2528
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
8 import com.smartgwt.client.widgets.layout.HLayout; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import com.smartgwt.client.widgets.layout.VLayout; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
4003
4d74a579c5c5
Add missing import of FLYSConstants
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3994
diff
changeset
|
11 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
|
12 import de.intevation.flys.client.shared.model.Data; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 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
|
14 import de.intevation.flys.client.shared.model.DataList; |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
15 import de.intevation.flys.client.shared.model.DefaultData; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
16 import de.intevation.flys.client.shared.model.DefaultDataItem; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 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:
2528
diff
changeset
|
18 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
|
19 |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
20 import java.util.ArrayList; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
21 import java.util.List; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
22 import java.util.Map; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
23 import java.util.Set; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
24 |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 /** |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 */ |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 public class ParameterMatrixPanel extends AbstractUIProvider { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 |
4184
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
30 private static final long serialVersionUID = -5827445025768340371L; |
03de5c424f95
Fix warnings and minor TODOs in flys-client.
Christian Lins <christian.lins@intevation.de>
parents:
4003
diff
changeset
|
31 |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
32 /** The message class that provides i18n strings. */ |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
33 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
34 |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
35 private ParameterMatrix matrix; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
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 @Override |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 protected Data[] getData() { |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
39 Map<String, List<String>> selection = matrix.getSelection(); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
40 Set<Map.Entry<String, List<String>>> entries = selection.entrySet(); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
41 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
42 Data[] list = new Data[selection.size()]; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
43 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
44 int i = 0; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
45 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
46 for (Map.Entry<String, List<String>> entry: entries) { |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
47 String value = buildValueString(entry.getValue()); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
48 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
49 DataItem item = new DefaultDataItem( |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
50 entry.getKey(), |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
51 null, |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
52 value); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
53 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
54 list[i++] = new DefaultData( |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
55 entry.getKey(), null, null, new DataItem[] { item }); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
56 } |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
57 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
58 return list; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
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 |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
61 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
62 protected String buildValueString(List<String> values) { |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
63 StringBuilder sb = new StringBuilder(); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
64 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
65 boolean first = true; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
66 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
67 for (String value: values) { |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
68 if (!first) { |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
69 sb.append(";"); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
70 } |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
71 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
72 sb.append(value); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
73 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
74 first = false; |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
75 } |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
76 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
77 return sb.toString(); |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
78 } |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
79 |
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
80 |
3850
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
81 /** Canvas to show in non-edit mode. */ |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 @Override |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 public Canvas createOld(DataList dataList) { |
2528
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
84 HLayout layout = new HLayout(); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
85 VLayout vLayout = new VLayout(); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
86 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
87 layout.setWidth(300); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
88 vLayout.setWidth(280); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
89 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
90 for (int i = 0, n = dataList.size(); i < n; i++) { |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
91 HLayout row = new HLayout(); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
92 VLayout cols = new VLayout(); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
93 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
94 row.setWidth(300); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
95 cols.setWidth(100); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
96 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
97 Data data = dataList.get(i); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
98 DataItem[] items = data.getItems(); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
99 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
100 Label parameter = new Label(data.getDescription()); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
101 parameter.setWidth(200); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
102 |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2528
diff
changeset
|
103 for (int j = 0, m = items.length; j < m; j++) { |
2528
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
104 DataItem item = items[j]; |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
105 Label value = new Label(item.getLabel()); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
106 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
107 value.setValign(com.smartgwt.client.types.VerticalAlignment.TOP); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
108 value.setWidth(130); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
109 value.setHeight(20); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
110 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
111 cols.addMember(value); |
3850
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
112 HTML hr = new HTML("<hr>"); |
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
113 hr.setHeight("3px"); |
8d0ababa2db7
issue871 (tiny bit messy parameterization for flowvelocity).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3710
diff
changeset
|
114 cols.addMember(hr); |
2528
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
115 } |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
116 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
117 row.addMember(parameter); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
118 row.addMember(cols); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
119 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
120 vLayout.addMember(row); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
121 } |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
122 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
123 Canvas back = getBackButton(dataList.getState()); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
124 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
125 layout.addMember(vLayout); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
126 layout.addMember(back); |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
127 |
33e2a1e23ae8
Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2525
diff
changeset
|
128 return layout; |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
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 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
131 |
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
132 /** Create the main canvas in the "editing" mode. */ |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 @Override |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 public Canvas create(DataList dataList) { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 VLayout v = new VLayout(); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
136 v.addMember(createTitle(dataList)); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
137 |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
138 matrix = new ParameterMatrix(); |
2521
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 for (Data data: dataList.getAll()) { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 if (data instanceof IntegerOptionsData) { |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 matrix.addColumn((IntegerOptionsData) data); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
143 } |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2528
diff
changeset
|
144 else if (data instanceof StringOptionsData) { |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2528
diff
changeset
|
145 matrix.addColumn((StringOptionsData) data); |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2528
diff
changeset
|
146 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
149 // If too many items are shown, show it in the helper Panel. |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3853
diff
changeset
|
150 // TODO its not about the datalist, but about the "rows" in the data. |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
151 if (dataList.getAll().size() > 5) { |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3853
diff
changeset
|
152 v.addMember(matrix.create(false)); |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
153 } |
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
154 else { |
3854
3228d65b0db9
Improved fix for issue860 (parameter in helper pane).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3853
diff
changeset
|
155 helperContainer.addMember(matrix.create(true)); |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
156 } |
2525
da1d897ed66d
Implemented ParameterMatrixPanel.getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2524
diff
changeset
|
157 v.addMember(getNextButton()); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 return v; |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 |
3853
8ef59abc0fbf
Attempt at issue860.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3850
diff
changeset
|
163 /** Reaturns a label with description of first Data. */ |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
164 protected Canvas createTitle(DataList dataList) { |
3710
255decb14439
Improved i18n in minfo code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2539
diff
changeset
|
165 Data data = dataList.get(0); |
255decb14439
Improved i18n in minfo code.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2539
diff
changeset
|
166 Label label = new Label(data.getDescription()); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 label.setHeight(35); |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
168 |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 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
|
170 } |
3994
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
171 |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
172 |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
173 /** Selection shall not be empty. */ |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
174 @Override |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
175 public List<String> validate() { |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
176 GWT.log ("validation. validation. validation. "); |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
177 List<String> errors = new ArrayList<String>(); |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
178 // Early stop on one (only) error. |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
179 for (Map.Entry<String, List<String>> entry : matrix.getSelection().entrySet()) { |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
180 if (entry.getValue() == null || entry.getValue().size() == 0) { |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
181 errors.add(MESSAGES.error_values_needed()); |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
182 return errors; |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
183 } |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
184 } |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
185 return errors; |
cc0b31dc2789
fix issue898 (crash when no param selected for parametermatrix).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3858
diff
changeset
|
186 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
187 } |
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
188 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |