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 }

http://dive4elements.wald.intevation.org