comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WQAdaptedInputPanel.java @ 6666:3c4c0ea52bbb

issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow click selection of W values, analogously to Q values.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 26 Jul 2013 08:59:55 +0200
parents c1b01cf2e91b
children 5e38e2924c07
comparison
equal deleted inserted replaced
6665:b7945db8a43b 6666:3c4c0ea52bbb
138 wTables = new ArrayList<WTable>(); 138 wTables = new ArrayList<WTable>();
139 qdTables = new ArrayList<QDTable>(); 139 qdTables = new ArrayList<QDTable>();
140 } 140 }
141 141
142 142
143 /** Create labels, canvasses, layouts. */
143 @Override 144 @Override
144 public Canvas create(DataList data) { 145 public Canvas create(DataList data) {
145 readGaugeRanges(data); 146 readGaugeRanges(data);
146 initHelperPanel(); 147 initHelperPanel();
147 148
194 195
195 wTables.add(wTable); 196 wTables.add(wTable);
196 qdTables.add(qdTable); 197 qdTables.add(qdTable);
197 198
198 qdTable.showSelect(); 199 qdTable.showSelect();
199 //wTable.showSelect(); 200 wTable.showSelect();
200 wTab.setPane(wTable); 201 wTab.setPane(wTable);
201 qTab.setPane(qdTable); 202 qTab.setPane(qdTable);
202 203
203 tabs.addTab(wTab, i*2+0); 204 tabs.addTab(wTab, i*2+0);
204 tabs.addTab(qTab, i*2+1); 205 tabs.addTab(qTab, i*2+1);
265 }; 266 };
266 267
267 qdTable.addCellClickHandler(handler); 268 qdTable.addCellClickHandler(handler);
268 i++; 269 i++;
269 } 270 }
271
272 i = 0;
273 for (WTable wTable: wTables) {
274 // Register listener such that values are filled in on click.
275 final WTable table = wTable;
276 final int fi = i;
277 CellClickHandler handler = new CellClickHandler() {
278 @Override
279 public void onCellClick(CellClickEvent e) {
280 if (!isWMode() /*|| table.isLocked()*/) {
281 return;
282 }
283
284 Record r = e.getRecord();
285 double val = r.getAttributeAsDouble("value");
286
287 doubleArrayPanels.get(fi).setValues(new double[]{val});
288 // If a named value for first gauge is chosen, try to find and set
289 // the values to the other panels too.
290 if (fi == 0) {
291 String valueName = r.getAttribute("name");
292 int oi = 0;
293 // TODO instead of oi use random access.
294 for (WTable otherWTable: wTables) {
295 if (oi == 0) {
296 oi++;
297 continue;
298 }
299 Double value = otherWTable.findRecordValue(valueName);
300 if (value == null) {
301 // TODO: afterwards it freaks out
302 SC.warn(MSG.noMainValueAtGauge());
303 }
304 else {
305 doubleArrayPanels.get(oi).setValues(new double[]{value});
306 }
307 oi++;
308 }
309 }
310 else {
311 // Focus next.
312 if (fi != doubleArrayPanels.size()-1) {
313 doubleArrayPanels.get(fi+1).focusInItem(1);
314 }
315 }
316 }
317 };
318
319 wTable.addCellClickHandler(handler);
320 i++;
321 }
270 } 322 }
271 323
272 324
273 @Override 325 @Override
274 public Canvas createOld(DataList dataList) { 326 public Canvas createOld(DataList dataList) {

http://dive4elements.wald.intevation.org