Mercurial > dive4elements > river
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) { |