annotate 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
rev   line source
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
3 *
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
7 */
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
8
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.client.client.ui.bundu;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
10
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
11 import java.util.ArrayList;
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
12 import java.util.Date;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
13 import java.util.LinkedHashMap;
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
14 import java.util.List;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
15 import java.util.Map;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
16
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
17 import org.dive4elements.river.client.client.Config;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
18 import org.dive4elements.river.client.client.services.DynamicMainValuesService;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
19 import org.dive4elements.river.client.client.services.DynamicMainValuesServiceAsync;
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
20 import org.dive4elements.river.client.client.services.DynamicMainValuesTimeRangeDeterminationService;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
21 import org.dive4elements.river.client.client.services.DynamicMainValuesTimeRangeDeterminationServiceAsync;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
22 import org.dive4elements.river.client.client.ui.AbstractWQAdaptedInputPanel;
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.client.client.ui.DoubleArrayPanel;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
24 import org.dive4elements.river.client.client.ui.wq.QDTable;
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
25 import org.dive4elements.river.client.shared.model.ArtifactDescription;
9277
2323d005f9a5 compile error fix
gernotbelger
parents: 9276
diff changeset
26 import org.dive4elements.river.client.shared.model.Data;
9278
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
27 import org.dive4elements.river.client.shared.model.DataItem;
9277
2323d005f9a5 compile error fix
gernotbelger
parents: 9276
diff changeset
28 import org.dive4elements.river.client.shared.model.DataList;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
29 import org.dive4elements.river.client.shared.model.DefaultData;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
30 import org.dive4elements.river.client.shared.model.DefaultDataItem;
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
31 import org.dive4elements.river.client.shared.model.GaugeInfoObject;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
32 import org.dive4elements.river.client.shared.model.WQDataItem;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
33 import org.dive4elements.river.client.shared.model.WQInfoObject;
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
34
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
35 import com.google.gwt.core.client.GWT;
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
36 import com.google.gwt.i18n.client.NumberFormat;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
37 import com.google.gwt.user.client.rpc.AsyncCallback;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
38 import com.smartgwt.client.types.TitleOrientation;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
39 import com.smartgwt.client.types.VerticalAlignment;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
40 import com.smartgwt.client.types.Visibility;
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
41 import com.smartgwt.client.util.SC;
9277
2323d005f9a5 compile error fix
gernotbelger
parents: 9276
diff changeset
42 import com.smartgwt.client.widgets.Canvas;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
43 import com.smartgwt.client.widgets.Label;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
44 import com.smartgwt.client.widgets.form.DynamicForm;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
45 import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
46 import com.smartgwt.client.widgets.form.fields.TextItem;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
47 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
48 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
9293
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
49 import com.smartgwt.client.widgets.form.fields.events.FocusEvent;
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
50 import com.smartgwt.client.widgets.form.fields.events.FocusHandler;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
51 import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
52 import com.smartgwt.client.widgets.layout.HLayout;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
53 import com.smartgwt.client.widgets.layout.VLayout;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
54 import com.smartgwt.client.widgets.tab.Tab;
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
55
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
56 /**
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
57 * This UIProvider creates a widget to enter W or Q data for
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
58 * Fixation analysis
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
59 *
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
60 * @author <a href="mailto:aheinecke@intevation.de">Andre Heinecke</a>
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
61 */
9293
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
62 public class BunduWstWQPanel extends AbstractWQAdaptedInputPanel implements FocusHandler {
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
63
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
64 private static final long serialVersionUID = -1L;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
65
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
66 private static enum mode {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
67 Q, UD
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
68 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
69
9293
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
70 /** The currently focussed Input element. */
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
71 private DoubleArrayPanel itemWithFocus;
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
72
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
73 /** Service to fetch W/Q MainValues. */
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
74 private final DynamicMainValuesServiceAsync mainValueService = GWT.create(DynamicMainValuesService.class);
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
75 private final DynamicMainValuesTimeRangeDeterminationServiceAsync serviceForTime = GWT.create(DynamicMainValuesTimeRangeDeterminationService.class);
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
76
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
77 private final RadioGroupItem radiogroup = new RadioGroupItem();
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
78
9278
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
79 private int bezugsjahr = 0;
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
80
9278
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
81 private int qSeriesLength = 0;
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
82
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
83 private Canvas list;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
84
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
85 private final DynamicForm udForm = new DynamicForm();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
86
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
87 private final TextItem udInputItem = new TextItem();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
88
9277
2323d005f9a5 compile error fix
gernotbelger
parents: 9276
diff changeset
89 @Override
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
90 protected void beforeCreate(final DataList data) {
9278
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
91 for (final Data container : data.getAll()) {
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
92 final DataItem[] items = container.getItems();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
93 if (items != null) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
94 for (final DataItem item : items) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
95 if ("ignore_bezugsjahr".equals(item.getLabel())) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
96 this.bezugsjahr = Integer.valueOf(item.getStringValue());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
97 } else if ("ignore_q_series_length".equals(item.getLabel())) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
98 this.qSeriesLength = Integer.valueOf(item.getStringValue());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
99 }
9278
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
100 }
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
101 }
717c9dc1859f datatransfer bezugsjahr, qserieslength
gernotbelger
parents: 9277
diff changeset
102 }
9277
2323d005f9a5 compile error fix
gernotbelger
parents: 9276
diff changeset
103 }
2323d005f9a5 compile error fix
gernotbelger
parents: 9276
diff changeset
104
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
105 @Override
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
106 protected void afterCreate() {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
107 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
108
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
109 @Override
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
110 protected Canvas createWidget(final DataList dataList) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
111 final VLayout layout = new VLayout();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
112 final Canvas mode = createMode(dataList);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
113
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
114 this.list = createList(dataList);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
115
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
116 this.udInputItem.setShowTitle(false);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
117 this.udInputItem.setWidth(120);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
118 final IntegerRangeValidator validator = new IntegerRangeValidator();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
119 validator.setMax(364);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
120 validator.setMin(0);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
121 validator.setErrorMessage(this.MSG.bundu_bezugswst_validation_range());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
122 this.udInputItem.setRequiredMessage(this.MSG.bundu_bezugswst_validation_range());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
123 this.udInputItem.setValidators(validator);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
124 this.udInputItem.setValidateOnChange(true);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
125 this.udForm.setFields(this.udInputItem);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
126
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
127 final List<WQDataItem> items = getWQItems(dataList);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
128 final int listHeight = ROW_HEIGHT * items.size();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
129
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
130 mode.setHeight(25);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
131 mode.setWidth(200);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
132
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
133 layout.addMember(mode);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
134 layout.addMember(this.list);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
135 layout.addMember(this.udForm);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
136 layout.setHeight(25 + listHeight);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
137 layout.setWidth(350);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
138 enableQ();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
139 return layout;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
140 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
141
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
142 /**
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
143 * Create radio button for switching
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
144 * Radiobutton-change also triggers helper panel tab selection.
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
145 */
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
146
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
147 private Canvas createMode(final DataList dataList) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
148 this.radiogroup.setShowTitle(false);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
149 this.radiogroup.setVertical(false);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
150 this.radiogroup.setWidth(200);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
151
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
152 final LinkedHashMap<String, String> wqValues = new LinkedHashMap<String, String>();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
153 wqValues.put(String.valueOf(mode.Q), this.MSG.wqQatGauge());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
154 wqValues.put(String.valueOf(mode.UD), this.MSG.bundu_bezugswst_mode_ud());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
155 this.radiogroup.setValueMap(wqValues);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
156 this.radiogroup.setValue(String.valueOf(mode.Q));
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
157
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
158 this.modes = new DynamicForm();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
159 this.modes.setFields(this.radiogroup);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
160 this.modes.setWidth(200);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
161 this.radiogroup.addChangeHandler(new ChangeHandler() {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
162 @Override
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
163 public void onChange(final ChangeEvent e) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
164
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
165 final String value = e.getValue().toString();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
166 if (value.equals(String.valueOf(mode.UD))) {
9290
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
167 enableUD();
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
168 } else if (value.equals(String.valueOf(mode.Q))) {
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
169 enableQ();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
170 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
171 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
172 });
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
173 return this.modes;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
174 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
175
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
176 private void enableUD() {
9290
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
177 BunduWstWQPanel.this.list.setVisibility(Visibility.HIDDEN);
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
178 BunduWstWQPanel.this.udForm.setVisibility(Visibility.VISIBLE);
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
179 BunduWstWQPanel.this.tabs.disable();
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
180 }
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
181
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
182 private void enableQ() {
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
183 BunduWstWQPanel.this.list.setVisibility(Visibility.VISIBLE);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
184 BunduWstWQPanel.this.udForm.setVisibility(Visibility.HIDDEN);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
185 BunduWstWQPanel.this.tabs.enable();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
186 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
187
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
188 private final String getMode() {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
189 return (String) this.radiogroup.getValue();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
190 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
191
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
192 @Override
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
193 public Data[] getData() {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
194 final Data[] data = new Data[2];
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
195 final String modeStr = getMode();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
196 final DataItem item = new DefaultDataItem("bundu.wst.mode", "bundu.wst.mode", modeStr);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
197 final Data modeData = new DefaultData("bundu.wst.mode", null, null, new DataItem[] { item });
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
198 data[0] = modeData;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
199 if (modeStr.equals(mode.Q.toString())) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
200 data[1] = getWQValues("wq_values");
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
201 } else if (modeStr.equals(mode.UD.toString())) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
202 final String udValue = this.udInputItem.getValueAsString(); // in validate findet der int-check statt; er verhindert ein weitergehen, falls der Wert
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
203 // nicht int-kompatibel ist
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
204 final DataItem itemV = new DefaultDataItem("bundu.wst.ud_value", "bundu.wst.ud_value", udValue);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
205 data[1] = new DefaultData("bundu.wst.ud_value", null, null, new DataItem[] { itemV });
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
206 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
207 return data;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
208 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
209
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
210 @Override
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
211 protected void createTabs() {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
212 for (int i = 0; i < this.gaugeRanges.size(); i++) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
213 final Tab qTab = new Tab(this.MSG.wq_table_q());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
214 final QDTable qdTable = new QDTable();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
215 this.qdTables.add(qdTable);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
216 qdTable.showSelect();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
217 qTab.setPane(qdTable);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
218 this.tabs.addTab(qTab, i);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
219 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
220 this.tabs.setSelectedTab(0);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
221 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
222
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
223 private Canvas createList(final DataList dataList) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
224 final VLayout layout = new VLayout();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
225
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
226 final List<WQDataItem> items = getWQItems(dataList);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
227
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
228 int i = 0;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
229 for (final DataItem item : items) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
230 if (item instanceof WQDataItem) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
231 final String title = item.getLabel();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
232 final String label = item.getStringValue();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
233
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
234 this.tabs.getTab(i).setTitle(this.tabs.getTab(i).getTitle() + " (" + label + ")");
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
235
9293
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
236 final DoubleArrayPanel dap = new DoubleArrayPanel(label, null, this, this, TitleOrientation.LEFT);
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
237 this.wqranges.put(title, dap);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
238 this.doubleArrayPanels.add(dap);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
239 if (item instanceof WQDataItem) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
240 final WQDataItem wq = (WQDataItem) item;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
241 final double[] mmQ = wq.getQRange();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
242 this.qranges.put(title, mmQ);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
243
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
244 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
245 layout.addMember(dap);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
246 i++;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
247 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
248 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
249
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
250 layout.setHeight(items.size() * ROW_HEIGHT);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
251
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
252 return layout;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
253 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
254
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
255 @Override
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
256 public List<String> validate() {
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
257 final List<String> errors = new ArrayList<String>();
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
258 if (getMode().equals(mode.Q.toString())) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
259 errors.addAll(this.validateRange(this.qranges));
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
260 } else if (getMode().equals(mode.UD.toString())) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
261 try {
9290
3729434f6dec UD/Q verwechselt
gernotbelger
parents: 9288
diff changeset
262 if (!this.udInputItem.validate()) {
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
263 errors.add(this.udInputItem.getRequiredMessage());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
264 }
9292
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
265 final String value = this.udInputItem.getValueAsString();
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
266 if (value == null || value.isEmpty()) {
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
267 errors.add(this.MSG.missingInput());
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
268 return errors;
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
269 }
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
270 Integer.valueOf(value);// irgendwie klappt die validator-validierung nur bei der eingabe von
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
271 // ganzzahlen :-(
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
272 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
273 catch (final NumberFormatException e) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
274 errors.add(this.MSG.error_invalid_integer());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
275 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
276 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
277 return errors;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
278 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
279
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
280 private List<String> validateRange(final Map<String, double[]> ranges) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
281 final List<String> errors = new ArrayList<String>();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
282
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
283 final NumberFormat nf = NumberFormat.getDecimalFormat();
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
284
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
285 for (final DoubleArrayPanel dap : this.wqranges.values()) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
286
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
287 if (!dap.validateForm()) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
288 errors.add(this.MSG.error_invalid_double_value());
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
289 return errors;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
290 }
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
291
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
292 int idx = 0;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
293
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
294 final double[] values = dap.getInputValues();
9292
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
295 if (values == null) {
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
296 errors.add(this.MSG.missingInputs());
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
297 return errors;
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9290
diff changeset
298 }
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
299 final double[] good = new double[values.length];
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
300
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
301 for (final double value : values) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
302 if (value <= 0) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
303 String tmp = this.MSG.error_validate_positive();
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
304 tmp = tmp.replace("$1", nf.format(value));
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
305 errors.add(tmp);
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
306 } else {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
307 good[idx++] = value;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
308 }
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
309 }
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
310
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
311 final double[] justGood = new double[idx];
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
312 for (int i = 0; i < justGood.length; i++) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
313 justGood[i] = good[i];
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
314 }
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
315
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
316 if (!errors.isEmpty()) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
317 dap.setValues(justGood);
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
318 }
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
319 }
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
320 return errors;
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents:
diff changeset
321 }
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
322
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
323 @Override
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
324 public Canvas createOld(final DataList dataList) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
325 final List<Data> all = dataList.getAll();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
326 final Data wqData = getData(all, "wq_values");
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
327 final Data wqMode = getData(all, "bundu.wst.mode");
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
328 final Data udValue = getData(all, "bundu.wst.ud_value");
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
329
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
330 final boolean isQ = wqMode.getItems()[0].getStringValue().equals(String.valueOf(mode.Q));
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
331 final Canvas back = getBackButton(dataList.getState());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
332
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
333 final HLayout valLayout = new HLayout();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
334 final HLayout modeLayout = new HLayout();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
335 final VLayout vlayout = new VLayout();
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
336
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
337 final Label wqLabel = new Label(dataList.getLabel());
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
338 final Label modeLabel = new Label("");
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
339
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
340 wqLabel.setValign(VerticalAlignment.TOP);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
341
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
342 wqLabel.setWidth(200);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
343 wqLabel.setHeight(25);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
344 modeLabel.setHeight(25);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
345 modeLabel.setWidth(200);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
346
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
347 valLayout.addMember(wqLabel);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
348 if (isQ) {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
349 valLayout.addMember(createOldWQValues(wqData, true));
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
350 } else {
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
351 valLayout.addMember(new Label(udValue.getItems()[0].getStringValue() + " [d/a]"));
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
352 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
353 valLayout.addMember(back);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
354 modeLayout.addMember(modeLabel);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
355
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
356 vlayout.addMember(valLayout);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
357 vlayout.addMember(modeLayout);
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
358
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
359 return vlayout;
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
360 }
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
361
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
362 protected void callMainValuesService(final String locale, final String river, final double start, final double end, final Date startDate,
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
363 final Date endDate, final AsyncCallback<WQInfoObject[]> cb) {
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
364
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
365 this.mainValueService.getWQInfo(locale, river, start, end, startDate, endDate, cb);
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
366 }
9293
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
367
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
368 @Override
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
369 public void onFocus(final FocusEvent event) {
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
370 this.itemWithFocus = (DoubleArrayPanel) event.getForm();
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
371 // Switch to respective tab.
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
372 if (getMode().equals(mode.Q.toString())) {
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
373 final int inputIndex = this.doubleArrayPanels.indexOf(this.itemWithFocus);
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
374 this.tabs.selectTab(inputIndex);
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
375 }
e3e465766cfe FocusHandler re-added
gernotbelger
parents: 9292
diff changeset
376 }
9404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
377
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
378 @Override
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
379 protected void fetchWQData() {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
380 {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
381 final Config config = Config.getInstance();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
382 final String locale = config.getLocale();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
383
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
384 final ArtifactDescription adescr = this.artifact.getArtifactDescription();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
385 final DataList[] data = adescr.getOldData();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
386
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
387 final String river = getRiverName(data);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
388 final int startYear = this.bezugsjahr - this.qSeriesLength;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
389 final int endYear = this.bezugsjahr;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
390
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
391 // Gauge ranges overlap, move start and end a bit closer
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
392 // to each other.
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
393
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
394 final AsyncCallback<GaugeInfoObject[]> cb = new AsyncCallback<GaugeInfoObject[]>() {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
395 @Override
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
396 public void onFailure(final Throwable caught) {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
397 GWT.log("Could not recieve wq informations.");
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
398 final String msg = caught.getMessage();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
399 resetLoadingMessageOfQTable(msg);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
400 // disable weiter-knopf
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
401 getSubmitBtn().disable();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
402 SC.warn(msg);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
403 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
404
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
405 @Override
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
406 public void onSuccess(final GaugeInfoObject[] result) {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
407 // TODO Auto-generated method stub
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
408 final int num = result != null ? result.length : 0;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
409 GWT.log("Received timeranges for gauges");
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
410
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
411 if (num == 0) {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
412 return;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
413 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
414
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
415 for (int i = 0; i < result.length; i++) {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
416 final GaugeInfoObject gauge = result[i];
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
417 // Gauge ranges overlap, move start and end a bit closer
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
418 // to each other.
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
419 final Double[] range = getGaugeNamesRange().get(gauge.getName());
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
420 final double rDiff = (range[1] - range[0]) / 10d;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
421 final int fi = i;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
422
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
423 final AsyncCallback<WQInfoObject[]> cb = new AsyncCallback<WQInfoObject[]>() {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
424 @Override
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
425 public void onFailure(final Throwable caught) {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
426 GWT.log("Could not recieve wq informations.");
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
427 addWQInfo(null, fi, gauge);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
428 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
429
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
430 @Override
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
431 public void onSuccess(final WQInfoObject[] wqi) {
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
432 final int num = wqi != null ? wqi.length : 0;
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
433 GWT.log("Received " + num + " wq informations (" + fi + ".");
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
434
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
435 addWQInfo(wqi, fi, gauge);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
436 if (fi == (result.length - 1))
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
437 getSubmitBtn().enable();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
438 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
439 };
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
440 callMainValuesService(locale, river, range[0] + rDiff, range[1] - rDiff, gauge.getStartTime(), gauge.getStopTime(), cb);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
441 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
442 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
443
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
444 };
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
445
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
446 this.serviceForTime.getGaugeInfo(locale, river, getGaugeNames(), startYear, endYear, cb);
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
447 getSubmitBtn().disable();
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
448 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
449
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
450 }
bc9a45d2b1fa common time range for gauges incl. error messages
gernotbelger
parents: 9399
diff changeset
451
9288
82c67b859aa7 bundu.bezugswst worklflow incl. service impl for mainValues to be calculated
gernotbelger
parents: 9278
diff changeset
452 }

http://dive4elements.wald.intevation.org