Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQAdaptedInputPanel.java @ 246:ccba1a0b743e
The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
flys-client/trunk@1831 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 05 May 2011 08:09:03 +0000 |
parents | 11c5bcd349b1 |
children | 4a684d29404f |
comparison
equal
deleted
inserted
replaced
245:1e73d5a4859c | 246:ccba1a0b743e |
---|---|
1 package de.intevation.flys.client.client.ui; | 1 package de.intevation.flys.client.client.ui; |
2 | |
3 import java.util.HashMap; | |
4 import java.util.Iterator; | |
5 import java.util.List; | |
6 import java.util.Map; | |
2 | 7 |
3 import com.google.gwt.core.client.GWT; | 8 import com.google.gwt.core.client.GWT; |
4 | 9 |
10 import com.smartgwt.client.types.TitleOrientation; | |
5 import com.smartgwt.client.widgets.Canvas; | 11 import com.smartgwt.client.widgets.Canvas; |
6 import com.smartgwt.client.widgets.Label; | 12 import com.smartgwt.client.widgets.Label; |
7 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; | 13 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
8 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; | 14 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
9 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; | 15 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; |
14 import de.intevation.flys.client.shared.model.DataItem; | 20 import de.intevation.flys.client.shared.model.DataItem; |
15 import de.intevation.flys.client.shared.model.DataList; | 21 import de.intevation.flys.client.shared.model.DataList; |
16 import de.intevation.flys.client.shared.model.DefaultData; | 22 import de.intevation.flys.client.shared.model.DefaultData; |
17 import de.intevation.flys.client.shared.model.DefaultDataItem; | 23 import de.intevation.flys.client.shared.model.DefaultDataItem; |
18 | 24 |
25 import de.intevation.flys.client.client.FLYSConstants; | |
26 | |
19 | 27 |
20 /** | 28 /** |
21 * This UIProvider creates a widget to enter W or Q data for discharge | 29 * This UIProvider creates a widget to enter W or Q data for discharge |
22 * longitudinal section computations. | 30 * longitudinal section computations. |
23 * | 31 * |
25 */ | 33 */ |
26 public class WQAdaptedInputPanel | 34 public class WQAdaptedInputPanel |
27 extends AbstractUIProvider | 35 extends AbstractUIProvider |
28 implements ChangeHandler, BlurHandler | 36 implements ChangeHandler, BlurHandler |
29 { | 37 { |
38 public static final String FIELD_WQ_MODE = "wq_mode"; | |
39 | |
40 | |
41 /** The message class that provides i18n strings.*/ | |
42 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); | |
43 | |
44 /** Stores the input panels related to their keys.*/ | |
45 protected Map<String, DoubleArrayPanel> wqranges; | |
46 | |
47 | |
48 | |
30 public WQAdaptedInputPanel() { | 49 public WQAdaptedInputPanel() { |
50 wqranges = new HashMap<String, DoubleArrayPanel>(); | |
31 } | 51 } |
32 | 52 |
33 | 53 |
34 public Canvas create(DataList data) { | 54 public Canvas create(DataList data) { |
35 GWT.log("HELLO INGO"); | |
36 Canvas submit = getNextButton(); | 55 Canvas submit = getNextButton(); |
56 Canvas widget = createWidget(data); | |
57 Label label = new Label(MSG.wqadaptedTitle()); | |
58 | |
59 label.setHeight(25); | |
37 | 60 |
38 VLayout layout = new VLayout(); | 61 VLayout layout = new VLayout(); |
39 layout.setMembersMargin(10); | 62 layout.setMembersMargin(10); |
40 | 63 |
64 layout.addMember(label); | |
65 layout.addMember(widget); | |
41 layout.addMember(submit); | 66 layout.addMember(submit); |
42 | 67 |
43 return layout; | 68 return layout; |
44 } | 69 } |
45 | 70 |
48 // TODO IMPLEMENT ME | 73 // TODO IMPLEMENT ME |
49 return new Label("Ich hab schon was eingegeben."); | 74 return new Label("Ich hab schon was eingegeben."); |
50 } | 75 } |
51 | 76 |
52 | 77 |
78 protected Canvas createWidget(DataList dataList) { | |
79 VLayout layout = new VLayout(); | |
80 | |
81 List<Data> data = dataList.getAll(); | |
82 | |
83 for (Data d: data) { | |
84 String name = d.getLabel(); | |
85 | |
86 if (name.equals(FIELD_WQ_MODE)) { | |
87 continue; | |
88 } | |
89 | |
90 DataItem[] items = d.getItems(); | |
91 | |
92 for (DataItem item: items) { | |
93 String title = item.getLabel(); | |
94 | |
95 DoubleArrayPanel dap = new DoubleArrayPanel( | |
96 createLineTitle(title), null, this, TitleOrientation.LEFT); | |
97 | |
98 wqranges.put(title, dap); | |
99 | |
100 layout.addMember(dap); | |
101 } | |
102 } | |
103 | |
104 return layout; | |
105 } | |
106 | |
107 | |
108 public String createLineTitle(String key) { | |
109 String[] splitted = key.split(";"); | |
110 | |
111 return splitted[0] + " - " + splitted[1]; | |
112 } | |
113 | |
114 | |
53 public Data[] getData() { | 115 public Data[] getData() { |
54 DataItem item = new DefaultDataItem("wq_mode", "wq_mode", "bla"); | 116 Data mode = getWQMode(); |
117 Data values = getWQValues(); | |
55 | 118 |
119 return new Data[] { mode, values }; | |
120 } | |
121 | |
122 | |
123 protected Data getWQMode() { | |
124 // TODO Search for the correct value! | |
125 DataItem item = new DefaultDataItem("wq_mode", "wq_mode", "q"); | |
56 Data mode = new DefaultData( | 126 Data mode = new DefaultData( |
57 "wq_mode", null, null, new DataItem[] { item }); | 127 "wq_mode", null, null, new DataItem[] { item }); |
58 | 128 |
129 return mode; | |
130 } | |
131 | |
132 | |
133 protected Data getWQValues() { | |
134 String wqvalue = null; | |
135 | |
136 Iterator<String> iter = wqranges.keySet().iterator(); | |
137 while (iter.hasNext()) { | |
138 String key = iter.next(); | |
139 DoubleArrayPanel dap = wqranges.get(key); | |
140 | |
141 double[] values = dap.getInputValues(); | |
142 if (wqvalue == null) { | |
143 wqvalue = createValueString(key, values); | |
144 } | |
145 else { | |
146 wqvalue += ":" + createValueString(key, values); | |
147 } | |
148 } | |
149 | |
59 DataItem valueItem = new DefaultDataItem( | 150 DataItem valueItem = new DefaultDataItem( |
60 "wq_values", "wq_values", | 151 "wq_values", "wq_values", wqvalue); |
61 "0.0;70.2;9.6"); | |
62 Data values = new DefaultData( | 152 Data values = new DefaultData( |
63 "wq_values", null, null, new DataItem[] { valueItem }); | 153 "wq_values", null, null, new DataItem[] { valueItem }); |
64 | 154 |
65 return new Data[] { mode, values }; | 155 return values; |
156 } | |
157 | |
158 | |
159 protected String createValueString(String key, double[] values) { | |
160 StringBuilder sb = new StringBuilder(); | |
161 | |
162 boolean first = true; | |
163 | |
164 for (double value: values) { | |
165 if (!first) { | |
166 sb.append(","); | |
167 } | |
168 | |
169 sb.append(Double.toString(value)); | |
170 | |
171 first = false; | |
172 } | |
173 | |
174 return key + ";" + sb.toString(); | |
66 } | 175 } |
67 | 176 |
68 | 177 |
69 public void onChange(ChangeEvent event) { | 178 public void onChange(ChangeEvent event) { |
70 // TODO IMPLEMENT ME | 179 // TODO IMPLEMENT ME |
71 } | 180 } |
72 | 181 |
73 | 182 |
74 public void onBlur(BlurEvent event) { | 183 public void onBlur(BlurEvent event) { |
75 // TODO IMPLEMENT ME | 184 DoubleArrayPanel dap = (DoubleArrayPanel) event.getForm(); |
185 dap.validateForm(event.getItem()); | |
76 } | 186 } |
77 } | 187 } |
78 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 188 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |