Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/bundu/BunduWstWQPanel.java @ 9404:bc9a45d2b1fa
common time range for gauges incl. error messages
author | gernotbelger |
---|---|
date | Wed, 15 Aug 2018 13:59:09 +0200 |
parents | 77367e8da74d |
children | 43c975f8ab92 |
comparison
equal
deleted
inserted
replaced
9403:e2da9c8a7c57 | 9404:bc9a45d2b1fa |
---|---|
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.client.client.ui.bundu; | 9 package org.dive4elements.river.client.client.ui.bundu; |
10 | 10 |
11 import java.util.ArrayList; | 11 import java.util.ArrayList; |
12 import java.util.Date; | |
12 import java.util.LinkedHashMap; | 13 import java.util.LinkedHashMap; |
13 import java.util.List; | 14 import java.util.List; |
14 import java.util.Map; | 15 import java.util.Map; |
15 | 16 |
17 import org.dive4elements.river.client.client.Config; | |
16 import org.dive4elements.river.client.client.services.DynamicMainValuesService; | 18 import org.dive4elements.river.client.client.services.DynamicMainValuesService; |
17 import org.dive4elements.river.client.client.services.DynamicMainValuesServiceAsync; | 19 import org.dive4elements.river.client.client.services.DynamicMainValuesServiceAsync; |
20 import org.dive4elements.river.client.client.services.DynamicMainValuesTimeRangeDeterminationService; | |
21 import org.dive4elements.river.client.client.services.DynamicMainValuesTimeRangeDeterminationServiceAsync; | |
18 import org.dive4elements.river.client.client.ui.AbstractWQAdaptedInputPanel; | 22 import org.dive4elements.river.client.client.ui.AbstractWQAdaptedInputPanel; |
19 import org.dive4elements.river.client.client.ui.DoubleArrayPanel; | 23 import org.dive4elements.river.client.client.ui.DoubleArrayPanel; |
20 import org.dive4elements.river.client.client.ui.wq.QDTable; | 24 import org.dive4elements.river.client.client.ui.wq.QDTable; |
25 import org.dive4elements.river.client.shared.model.ArtifactDescription; | |
21 import org.dive4elements.river.client.shared.model.Data; | 26 import org.dive4elements.river.client.shared.model.Data; |
22 import org.dive4elements.river.client.shared.model.DataItem; | 27 import org.dive4elements.river.client.shared.model.DataItem; |
23 import org.dive4elements.river.client.shared.model.DataList; | 28 import org.dive4elements.river.client.shared.model.DataList; |
24 import org.dive4elements.river.client.shared.model.DefaultData; | 29 import org.dive4elements.river.client.shared.model.DefaultData; |
25 import org.dive4elements.river.client.shared.model.DefaultDataItem; | 30 import org.dive4elements.river.client.shared.model.DefaultDataItem; |
31 import org.dive4elements.river.client.shared.model.GaugeInfoObject; | |
26 import org.dive4elements.river.client.shared.model.WQDataItem; | 32 import org.dive4elements.river.client.shared.model.WQDataItem; |
27 import org.dive4elements.river.client.shared.model.WQInfoObject; | 33 import org.dive4elements.river.client.shared.model.WQInfoObject; |
28 | 34 |
29 import com.google.gwt.core.client.GWT; | 35 import com.google.gwt.core.client.GWT; |
30 import com.google.gwt.i18n.client.NumberFormat; | 36 import com.google.gwt.i18n.client.NumberFormat; |
31 import com.google.gwt.user.client.rpc.AsyncCallback; | 37 import com.google.gwt.user.client.rpc.AsyncCallback; |
32 import com.smartgwt.client.types.TitleOrientation; | 38 import com.smartgwt.client.types.TitleOrientation; |
33 import com.smartgwt.client.types.VerticalAlignment; | 39 import com.smartgwt.client.types.VerticalAlignment; |
34 import com.smartgwt.client.types.Visibility; | 40 import com.smartgwt.client.types.Visibility; |
41 import com.smartgwt.client.util.SC; | |
35 import com.smartgwt.client.widgets.Canvas; | 42 import com.smartgwt.client.widgets.Canvas; |
36 import com.smartgwt.client.widgets.Label; | 43 import com.smartgwt.client.widgets.Label; |
37 import com.smartgwt.client.widgets.form.DynamicForm; | 44 import com.smartgwt.client.widgets.form.DynamicForm; |
38 import com.smartgwt.client.widgets.form.fields.RadioGroupItem; | 45 import com.smartgwt.client.widgets.form.fields.RadioGroupItem; |
39 import com.smartgwt.client.widgets.form.fields.TextItem; | 46 import com.smartgwt.client.widgets.form.fields.TextItem; |
63 /** The currently focussed Input element. */ | 70 /** The currently focussed Input element. */ |
64 private DoubleArrayPanel itemWithFocus; | 71 private DoubleArrayPanel itemWithFocus; |
65 | 72 |
66 /** Service to fetch W/Q MainValues. */ | 73 /** Service to fetch W/Q MainValues. */ |
67 private final DynamicMainValuesServiceAsync mainValueService = GWT.create(DynamicMainValuesService.class); | 74 private final DynamicMainValuesServiceAsync mainValueService = GWT.create(DynamicMainValuesService.class); |
75 private final DynamicMainValuesTimeRangeDeterminationServiceAsync serviceForTime = GWT.create(DynamicMainValuesTimeRangeDeterminationService.class); | |
68 | 76 |
69 private final RadioGroupItem radiogroup = new RadioGroupItem(); | 77 private final RadioGroupItem radiogroup = new RadioGroupItem(); |
70 | 78 |
71 private int bezugsjahr = 0; | 79 private int bezugsjahr = 0; |
72 | 80 |
349 vlayout.addMember(modeLayout); | 357 vlayout.addMember(modeLayout); |
350 | 358 |
351 return vlayout; | 359 return vlayout; |
352 } | 360 } |
353 | 361 |
354 @Override | 362 protected void callMainValuesService(final String locale, final String river, final double start, final double end, final Date startDate, |
355 protected void callMainValuesService(final String locale, final String river, final double start, final double end, | 363 final Date endDate, final AsyncCallback<WQInfoObject[]> cb) { |
356 final AsyncCallback<WQInfoObject[]> cb) { | 364 |
357 | 365 this.mainValueService.getWQInfo(locale, river, start, end, startDate, endDate, cb); |
358 final int startYear = this.bezugsjahr - this.qSeriesLength + 1; | |
359 final int endYear = this.bezugsjahr; | |
360 | |
361 this.mainValueService.getWQInfo(locale, river, start, end, startYear, endYear, cb); | |
362 } | 366 } |
363 | 367 |
364 @Override | 368 @Override |
365 public void onFocus(final FocusEvent event) { | 369 public void onFocus(final FocusEvent event) { |
366 this.itemWithFocus = (DoubleArrayPanel) event.getForm(); | 370 this.itemWithFocus = (DoubleArrayPanel) event.getForm(); |
368 if (getMode().equals(mode.Q.toString())) { | 372 if (getMode().equals(mode.Q.toString())) { |
369 final int inputIndex = this.doubleArrayPanels.indexOf(this.itemWithFocus); | 373 final int inputIndex = this.doubleArrayPanels.indexOf(this.itemWithFocus); |
370 this.tabs.selectTab(inputIndex); | 374 this.tabs.selectTab(inputIndex); |
371 } | 375 } |
372 } | 376 } |
377 | |
378 @Override | |
379 protected void fetchWQData() { | |
380 { | |
381 final Config config = Config.getInstance(); | |
382 final String locale = config.getLocale(); | |
383 | |
384 final ArtifactDescription adescr = this.artifact.getArtifactDescription(); | |
385 final DataList[] data = adescr.getOldData(); | |
386 | |
387 final String river = getRiverName(data); | |
388 final int startYear = this.bezugsjahr - this.qSeriesLength; | |
389 final int endYear = this.bezugsjahr; | |
390 | |
391 // Gauge ranges overlap, move start and end a bit closer | |
392 // to each other. | |
393 | |
394 final AsyncCallback<GaugeInfoObject[]> cb = new AsyncCallback<GaugeInfoObject[]>() { | |
395 @Override | |
396 public void onFailure(final Throwable caught) { | |
397 GWT.log("Could not recieve wq informations."); | |
398 final String msg = caught.getMessage(); | |
399 resetLoadingMessageOfQTable(msg); | |
400 // disable weiter-knopf | |
401 getSubmitBtn().disable(); | |
402 SC.warn(msg); | |
403 } | |
404 | |
405 @Override | |
406 public void onSuccess(final GaugeInfoObject[] result) { | |
407 // TODO Auto-generated method stub | |
408 final int num = result != null ? result.length : 0; | |
409 GWT.log("Received timeranges for gauges"); | |
410 | |
411 if (num == 0) { | |
412 return; | |
413 } | |
414 | |
415 for (int i = 0; i < result.length; i++) { | |
416 final GaugeInfoObject gauge = result[i]; | |
417 // Gauge ranges overlap, move start and end a bit closer | |
418 // to each other. | |
419 final Double[] range = getGaugeNamesRange().get(gauge.getName()); | |
420 final double rDiff = (range[1] - range[0]) / 10d; | |
421 final int fi = i; | |
422 | |
423 final AsyncCallback<WQInfoObject[]> cb = new AsyncCallback<WQInfoObject[]>() { | |
424 @Override | |
425 public void onFailure(final Throwable caught) { | |
426 GWT.log("Could not recieve wq informations."); | |
427 addWQInfo(null, fi, gauge); | |
428 } | |
429 | |
430 @Override | |
431 public void onSuccess(final WQInfoObject[] wqi) { | |
432 final int num = wqi != null ? wqi.length : 0; | |
433 GWT.log("Received " + num + " wq informations (" + fi + "."); | |
434 | |
435 addWQInfo(wqi, fi, gauge); | |
436 if (fi == (result.length - 1)) | |
437 getSubmitBtn().enable(); | |
438 } | |
439 }; | |
440 callMainValuesService(locale, river, range[0] + rDiff, range[1] - rDiff, gauge.getStartTime(), gauge.getStopTime(), cb); | |
441 } | |
442 } | |
443 | |
444 }; | |
445 | |
446 this.serviceForTime.getGaugeInfo(locale, river, getGaugeNames(), startYear, endYear, cb); | |
447 getSubmitBtn().disable(); | |
448 } | |
449 | |
450 } | |
451 | |
373 } | 452 } |