Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java @ 3841:5877d6900e34
Refactor GaugeTree folding for different states
flys-client/trunk@5556 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Bjoern Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Fri, 21 Sep 2012 13:19:21 +0000 |
parents | cf64f54aa39c |
children | 44c1beb78ad1 |
comparison
equal
deleted
inserted
replaced
3840:cf64f54aa39c | 3841:5877d6900e34 |
---|---|
218 open(); | 218 open(); |
219 } | 219 } |
220 } | 220 } |
221 | 221 |
222 public void open() { | 222 public void open() { |
223 ArrayList<Double> curvelocations = new ArrayList<Double>(); | 223 ArrayList<Double> locations = new ArrayList<Double>(); |
224 | 224 |
225 if (data != null && data.length > 0) { | 225 if (data != null && data.length > 0) { |
226 for (int i = 0; i < data.length; i++) { | 226 for (int i = 0; i < data.length; i++) { |
227 DataList dl = data[i]; | 227 DataList dl = data[i]; |
228 String state = dl.getState(); | 228 String state = dl.getState(); |
229 GWT.log("GaugeTree - setData " + state); | 229 GWT.log("GaugeTree - setData " + state); |
230 if (state.equals("state.winfo.distance") || | 230 if (state.equals("state.winfo.location_distance")) { |
231 state.equals("state.winfo.distance_only") || | |
232 state.equals("state.winfo.location_distance")) { | |
233 Double ldfrom = null; | 231 Double ldfrom = null; |
234 Double ldto = null; | 232 Double ldto = null; |
235 | 233 |
236 for (int j = dl.size()-1; j >= 0; --j) { | 234 for (int j = dl.size()-1; j >= 0; --j) { |
237 Data d = dl.get(j); | 235 Data d = dl.get(j); |
241 ldfrom = getDoubleValue(d); | 239 ldfrom = getDoubleValue(d); |
242 } | 240 } |
243 else if (label.equals("ld_to")) { | 241 else if (label.equals("ld_to")) { |
244 ldto = getDoubleValue(d); | 242 ldto = getDoubleValue(d); |
245 } | 243 } |
246 else if (label.equals("ld_mode")) { | 244 else if (label.equals("ld_locations")) { |
247 GWT.log("GaugeTree - setData - ld_mode " + d.getStringValue()); | 245 getLocationsFromData(locations, d); |
248 } | 246 openOnLocations(locations); |
249 } | 247 return; |
250 | 248 } |
249 } | |
251 if (ldfrom != null) { | 250 if (ldfrom != null) { |
252 openOnDistance(ldfrom, ldto); | 251 openOnDistance(ldfrom, ldto); |
253 return; | 252 return; |
254 } | 253 } |
255 } | 254 } |
256 else if (state.equals("state.winfo.location")) { | 255 else if(state.equals("state.winfo.distance_only") || |
257 ArrayList<Double> locations = new ArrayList<Double>(); | 256 state.equals("state.winfo.distance")) { |
257 Double ldfrom = null; | |
258 Double ldto = null; | |
259 | |
258 for (int j = dl.size()-1; j >= 0; --j) { | 260 for (int j = dl.size()-1; j >= 0; --j) { |
259 Data d = dl.get(j); | 261 Data d = dl.get(j); |
260 String label = d.getLabel(); | 262 String label = d.getLabel(); |
261 GWT.log("GaugeTree - setData - location label " + | 263 GWT.log("GaugeTree - setData - label " + label + " " + d.getStringValue()); |
262 label + " " + d.getStringValue()); | 264 if (label.equals("ld_from")) { |
263 if (label.equals("ld_locations")) { | 265 ldfrom = getDoubleValue(d); |
264 getLocations(locations, d.getItems()); | 266 } |
265 } | 267 else if (label.equals("ld_to")) { |
266 } | 268 ldto = getDoubleValue(d); |
269 } | |
270 } | |
271 | |
272 if (ldfrom != null) { | |
273 openOnDistance(ldfrom, ldto); | |
274 return; | |
275 } | |
276 } | |
277 else if (state.equals("state.winfo.location")) { | |
278 getLocations("ld_locations", locations, dl); | |
267 openOnLocations(locations); | 279 openOnLocations(locations); |
268 return; | 280 return; |
269 } | 281 } |
270 else if (state.equals("state.winfo.reference.curve.input.start")) { | 282 else if (state.equals("state.winfo.reference.curve.input.start")) { |
271 for (int j = dl.size()-1; j >= 0; --j) { | 283 getLocations("reference_startpoint", locations, dl); |
272 Data d = dl.get(j); | |
273 String label = d.getLabel(); | |
274 if (label.equals("reference_startpoint")) { | |
275 getLocations(curvelocations, d.getItems()); | |
276 } | |
277 } | |
278 } | 284 } |
279 else if (state.equals("state.winfo.reference.curve.input.end")) { | 285 else if (state.equals("state.winfo.reference.curve.input.end")) { |
280 for (int j = dl.size()-1; j >= 0; --j) { | 286 getLocations("reference_endpoint", locations, dl); |
281 Data d = dl.get(j); | |
282 String label = d.getLabel(); | |
283 if (label.equals("reference_endpoint")) { | |
284 getLocations(curvelocations, d.getItems()); | |
285 } | |
286 } | |
287 } | 287 } |
288 else if (state.equals("state.winfo.historicalq.reference_gauge")) { | 288 else if (state.equals("state.winfo.historicalq.reference_gauge")) { |
289 for (int j = dl.size()-1; j >= 0; --j) { | 289 for (int j = dl.size()-1; j >= 0; --j) { |
290 Data d = dl.get(j); | 290 Data d = dl.get(j); |
291 String label = d.getLabel(); | 291 String label = d.getLabel(); |
292 if (label.equals("reference_gauge")) { | 292 if (label.equals("reference_gauge")) { |
293 String tmp = d.getStringValue(); | 293 String tmp = d.getStringValue(); |
294 if (tmp != null) { | 294 if (tmp != null) { |
295 Integer gaugereference = Integer.valueOf(tmp); | 295 Integer gaugereference = Integer.valueOf(tmp); |
296 if (gaugereference != null) { | 296 if (gaugereference != null) { |
297 //TODO | |
297 } | 298 } |
298 } | 299 } |
299 } | 300 } |
300 } | 301 } |
301 } | 302 } |
302 } | 303 } |
303 } | 304 } |
304 if (!curvelocations.isEmpty()) { | 305 if (!locations.isEmpty()) { |
305 openOnLocations(curvelocations); | 306 openOnLocations(locations); |
306 } | 307 } |
307 else { | 308 else { |
308 openAll(); | 309 openAll(); |
309 } | 310 } |
310 } | 311 } |
311 | 312 |
312 private void getLocations(List<Double> locations, DataItem[] items) { | 313 private void getLocations(String labelname, List<Double> locations, DataList dl) { |
314 for (int j = dl.size()-1; j >= 0; --j) { | |
315 Data d = dl.get(j); | |
316 String label = d.getLabel(); | |
317 if (label.equals(labelname)) { | |
318 getLocationsFromData(locations, d); | |
319 } | |
320 } | |
321 } | |
322 | |
323 private void getLocationsFromData(List<Double> locations, Data data) { | |
324 DataItem[] items = data.getItems(); | |
313 for (int k = 0; k < items.length; k++) { | 325 for (int k = 0; k < items.length; k++) { |
314 String tmp = items[k].getStringValue(); | 326 String tmp = items[k].getStringValue(); |
327 GWT.log("GaugeTree - getLocationsFromData " + tmp); | |
315 if (tmp != null) { | 328 if (tmp != null) { |
316 Double value = Double.valueOf(tmp); | 329 if (tmp.contains(" ")) { |
317 if (value != null) { | 330 // string contains several values ... |
318 locations.add(value); | 331 String[] values = tmp.split(" "); |
319 } | 332 for(int i=0; i < values.length; i++) { |
320 } | 333 Double value = Double.valueOf(values[i]); |
321 } | 334 if (value != null) { |
322 } | 335 locations.add(value); |
336 } | |
337 } | |
338 } | |
339 else { | |
340 Double value = Double.valueOf(tmp); | |
341 if (value != null) { | |
342 locations.add(value); | |
343 } | |
344 } | |
345 } | |
346 } | |
347 } | |
348 | |
323 private Double getDoubleValue(Data d) { | 349 private Double getDoubleValue(Data d) { |
324 String tmp = d.getStringValue(); | 350 String tmp = d.getStringValue(); |
325 if (tmp != null) { | 351 if (tmp != null) { |
326 return Double.valueOf(tmp); | 352 return Double.valueOf(tmp); |
327 } | 353 } |
344 if (gitem.getStart() >= start) { | 370 if (gitem.getStart() >= start) { |
345 setstate = true; | 371 setstate = true; |
346 } | 372 } |
347 } | 373 } |
348 else { | 374 else { |
349 if ((gitem.getStart() >= start && gitem.getStart() <= end) || | 375 GWT.log("GaugeTree - openOnDistance gitem " + gitem.getStart() + " " + gitem.getEnd()); |
350 (gitem.getEnd() >= start && gitem.getEnd() <= end)) { | 376 if ((start >= gitem.getStart() && start <= gitem.getEnd()) || |
377 (end >= gitem.getStart() && end <= gitem.getEnd()) || | |
378 (start <= gitem.getStart() && end >= gitem.getEnd())) { | |
351 setstate = true; | 379 setstate = true; |
352 } | 380 } |
353 } | 381 } |
354 item.setState(setstate); | 382 item.setState(setstate); |
355 } | 383 } |