Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQAdaptedInputPanel.java @ 255:e4f0bef52689
Added radio buttons to choose between W/Q modes in the adapted WQ panel.
flys-client/trunk@1867 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 09 May 2011 13:51:39 +0000 |
parents | 4a684d29404f |
children | 77234b1d009c |
comparison
equal
deleted
inserted
replaced
254:6838e4112eeb | 255:e4f0bef52689 |
---|---|
1 package de.intevation.flys.client.client.ui; | 1 package de.intevation.flys.client.client.ui; |
2 | 2 |
3 import java.util.HashMap; | 3 import java.util.HashMap; |
4 import java.util.Iterator; | 4 import java.util.Iterator; |
5 import java.util.LinkedHashMap; | |
5 import java.util.List; | 6 import java.util.List; |
6 import java.util.Map; | 7 import java.util.Map; |
7 | 8 |
8 import com.google.gwt.core.client.GWT; | 9 import com.google.gwt.core.client.GWT; |
9 | 10 |
10 import com.smartgwt.client.types.TitleOrientation; | 11 import com.smartgwt.client.types.TitleOrientation; |
11 import com.smartgwt.client.types.VerticalAlignment; | 12 import com.smartgwt.client.types.VerticalAlignment; |
12 import com.smartgwt.client.widgets.Canvas; | 13 import com.smartgwt.client.widgets.Canvas; |
13 import com.smartgwt.client.widgets.Label; | 14 import com.smartgwt.client.widgets.Label; |
15 import com.smartgwt.client.widgets.form.DynamicForm; | |
16 import com.smartgwt.client.widgets.form.fields.RadioGroupItem; | |
14 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; | 17 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
15 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; | 18 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
16 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; | 19 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; |
17 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; | 20 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; |
18 import com.smartgwt.client.widgets.layout.HLayout; | 21 import com.smartgwt.client.widgets.layout.HLayout; |
36 public class WQAdaptedInputPanel | 39 public class WQAdaptedInputPanel |
37 extends AbstractUIProvider | 40 extends AbstractUIProvider |
38 implements ChangeHandler, BlurHandler | 41 implements ChangeHandler, BlurHandler |
39 { | 42 { |
40 public static final String FIELD_WQ_MODE = "wq_mode"; | 43 public static final String FIELD_WQ_MODE = "wq_mode"; |
44 public static final String FIELD_WQ_W = "W"; | |
45 public static final String FIELD_WQ_Q = "Q"; | |
41 | 46 |
42 public static final String GAUGE_SEPARATOR = ":"; | 47 public static final String GAUGE_SEPARATOR = ":"; |
43 | 48 |
44 public static final String GAUGE_PART_SEPARATOR = ";"; | 49 public static final String GAUGE_PART_SEPARATOR = ";"; |
45 | 50 |
46 public static final String VALUE_SEPARATOR = ","; | 51 public static final String VALUE_SEPARATOR = ","; |
52 | |
53 public static final int ROW_HEIGHT = 20; | |
47 | 54 |
48 | 55 |
49 /** The message class that provides i18n strings.*/ | 56 /** The message class that provides i18n strings.*/ |
50 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); | 57 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); |
51 | 58 |
52 /** Stores the input panels related to their keys.*/ | 59 /** Stores the input panels related to their keys.*/ |
53 protected Map<String, DoubleArrayPanel> wqranges; | 60 protected Map<String, DoubleArrayPanel> wqranges; |
61 | |
62 /** The RadioGroupItem that determines the w/q input mode.*/ | |
63 protected DynamicForm modes; | |
54 | 64 |
55 | 65 |
56 | 66 |
57 public WQAdaptedInputPanel() { | 67 public WQAdaptedInputPanel() { |
58 wqranges = new HashMap<String, DoubleArrayPanel>(); | 68 wqranges = new HashMap<String, DoubleArrayPanel>(); |
66 | 76 |
67 label.setHeight(25); | 77 label.setHeight(25); |
68 | 78 |
69 VLayout layout = new VLayout(); | 79 VLayout layout = new VLayout(); |
70 layout.setMembersMargin(10); | 80 layout.setMembersMargin(10); |
81 layout.setWidth(350); | |
71 | 82 |
72 layout.addMember(label); | 83 layout.addMember(label); |
73 layout.addMember(widget); | 84 layout.addMember(widget); |
74 layout.addMember(submit); | 85 layout.addMember(submit); |
75 | 86 |
155 | 166 |
156 | 167 |
157 protected Canvas createWidget(DataList dataList) { | 168 protected Canvas createWidget(DataList dataList) { |
158 VLayout layout = new VLayout(); | 169 VLayout layout = new VLayout(); |
159 | 170 |
171 Canvas mode = createMode(dataList); | |
172 Canvas list = createList(dataList); | |
173 | |
174 DataItem[] items = getWQItems(dataList); | |
175 int listHeight = ROW_HEIGHT * items.length; | |
176 | |
177 mode.setHeight(25); | |
178 mode.setWidth(200); | |
179 | |
180 layout.addMember(mode); | |
181 layout.addMember(list); | |
182 | |
183 layout.setHeight(25 + listHeight); | |
184 layout.setWidth(350); | |
185 | |
186 return layout; | |
187 } | |
188 | |
189 | |
190 protected Canvas createList(DataList dataList) { | |
191 VLayout layout = new VLayout(); | |
192 | |
193 DataItem[] items = getWQItems(dataList); | |
194 | |
195 for (DataItem item: items) { | |
196 String title = item.getLabel(); | |
197 | |
198 DoubleArrayPanel dap = new DoubleArrayPanel( | |
199 createLineTitle(title), null, this, TitleOrientation.LEFT); | |
200 | |
201 wqranges.put(title, dap); | |
202 | |
203 layout.addMember(dap); | |
204 } | |
205 | |
206 layout.setHeight(items.length * ROW_HEIGHT); | |
207 | |
208 return layout; | |
209 } | |
210 | |
211 | |
212 protected DataItem[] getWQItems(DataList dataList) { | |
160 List<Data> data = dataList.getAll(); | 213 List<Data> data = dataList.getAll(); |
161 | 214 |
162 for (Data d: data) { | 215 for (Data d: data) { |
163 String name = d.getLabel(); | 216 String name = d.getLabel(); |
164 | 217 |
165 if (name.equals(FIELD_WQ_MODE)) { | 218 if (name.equals(FIELD_WQ_MODE)) { |
166 continue; | 219 continue; |
167 } | 220 } |
168 | 221 |
169 DataItem[] items = d.getItems(); | 222 return d.getItems(); |
170 | 223 } |
171 for (DataItem item: items) { | 224 |
172 String title = item.getLabel(); | 225 return null; |
173 | 226 } |
174 DoubleArrayPanel dap = new DoubleArrayPanel( | 227 |
175 createLineTitle(title), null, this, TitleOrientation.LEFT); | 228 |
176 | 229 protected Canvas createMode(DataList dataList) { |
177 wqranges.put(title, dap); | 230 RadioGroupItem wq = new RadioGroupItem(FIELD_WQ_MODE); |
178 | 231 wq.setShowTitle(false); |
179 layout.addMember(dap); | 232 wq.setVertical(false); |
180 } | 233 wq.setWidth(200); |
181 } | 234 |
182 | 235 LinkedHashMap wqValues = new LinkedHashMap(); |
183 return layout; | 236 wqValues.put(FIELD_WQ_W, MSG.wqW()); |
237 wqValues.put(FIELD_WQ_Q, MSG.wqQ()); | |
238 | |
239 wq.setValueMap(wqValues); | |
240 | |
241 modes = new DynamicForm(); | |
242 modes.setFields(wq); | |
243 modes.setWidth(200); | |
244 | |
245 LinkedHashMap initial = new LinkedHashMap(); | |
246 initial.put(FIELD_WQ_MODE, FIELD_WQ_W); | |
247 modes.setValues(initial); | |
248 | |
249 return modes; | |
184 } | 250 } |
185 | 251 |
186 | 252 |
187 public String createLineTitle(String key) { | 253 public String createLineTitle(String key) { |
188 String[] splitted = key.split(";"); | 254 String[] splitted = key.split(";"); |
198 return new Data[] { mode, values }; | 264 return new Data[] { mode, values }; |
199 } | 265 } |
200 | 266 |
201 | 267 |
202 protected Data getWQMode() { | 268 protected Data getWQMode() { |
203 // TODO Search for the correct value! | 269 String wqMode = modes.getValueAsString(FIELD_WQ_MODE); |
204 DataItem item = new DefaultDataItem("wq_mode", "wq_mode", "q"); | 270 DataItem item = new DefaultDataItem("wq_mode", "wq_mode", wqMode); |
205 Data mode = new DefaultData( | 271 Data mode = new DefaultData( |
206 "wq_mode", null, null, new DataItem[] { item }); | 272 "wq_mode", null, null, new DataItem[] { item }); |
207 | 273 |
208 return mode; | 274 return mode; |
209 } | 275 } |