annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WQAdaptedInputPanel.java @ 8870:c26fb37899ca

Introduced groups for modules. Modules marked with the same group-id, will be put together in the ui. Also using now the localization info from the server instead of localizing the modules again on the client side.
author gernotbelger
date Wed, 07 Feb 2018 11:59:13 +0100
parents 5e38e2924c07
children 717c9dc1859f
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5921
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5921
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import com.google.gwt.core.client.GWT;
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
12 import com.google.gwt.i18n.client.NumberFormat;
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
13 import com.google.gwt.user.client.rpc.AsyncCallback;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
15 import com.smartgwt.client.data.Record;
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
16 import com.smartgwt.client.types.TitleOrientation;
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
17 import com.smartgwt.client.types.VerticalAlignment;
602
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
18 import com.smartgwt.client.util.SC;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.Canvas;
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.Label;
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
21 import com.smartgwt.client.widgets.form.DynamicForm;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
22 import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
24 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
25 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
27 import com.smartgwt.client.widgets.form.fields.events.FocusEvent;
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
28 import com.smartgwt.client.widgets.form.fields.events.FocusHandler;
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
29 import com.smartgwt.client.widgets.grid.events.CellClickEvent;
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
30 import com.smartgwt.client.widgets.grid.events.CellClickHandler;
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
31 import com.smartgwt.client.widgets.layout.HLayout;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import com.smartgwt.client.widgets.layout.VLayout;
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
33 import com.smartgwt.client.widgets.tab.Tab;
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
34 import com.smartgwt.client.widgets.tab.TabSet;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
36 import org.dive4elements.river.client.client.Config;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.client.services.WQInfoService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
39 import org.dive4elements.river.client.client.services.WQInfoServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.client.ui.wq.QDTable;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
41 import org.dive4elements.river.client.client.ui.wq.WTable;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
42 import org.dive4elements.river.client.shared.model.ArtifactDescription;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
43 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
44 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
45 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
46 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
47 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
48 import org.dive4elements.river.client.shared.model.WQDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
49 import org.dive4elements.river.client.shared.model.WQInfoObject;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
50 import org.dive4elements.river.client.shared.model.WQInfoRecord;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
52 import java.util.ArrayList;
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
53 import java.util.HashMap;
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
54 import java.util.LinkedHashMap;
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
55 import java.util.List;
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
56 import java.util.Map;
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
57
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 /**
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 * This UIProvider creates a widget to enter W or Q data for discharge
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 * longitudinal section computations.
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 *
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 */
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 public class WQAdaptedInputPanel
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 extends AbstractUIProvider
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
67 implements ChangeHandler, BlurHandler, FocusHandler
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
69 private static final long serialVersionUID = -3218827566805476423L;
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
70
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
71 /** The message class that provides i18n strings. */
5190
7b37876b2f51 WQAdaptedInputPanel: fix i18n, added todo as now method is full dupe.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5155
diff changeset
72 protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class);
7b37876b2f51 WQAdaptedInputPanel: fix i18n, added todo as now method is full dupe.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5155
diff changeset
73
2392
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
74 public static final String FIELD_WQ_MODE = "wq_isq";
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
75 public static final String FIELD_WQ_W = "W";
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
76 public static final String FIELD_WQ_Q = "Q";
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
77
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
78 public static final String GAUGE_SEPARATOR = ":";
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
79
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
80 public static final String GAUGE_PART_SEPARATOR = ";";
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
81
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
82 public static final String VALUE_SEPARATOR = ",";
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
83
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
84 public static final int ROW_HEIGHT = 20;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
85
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
86 /** The constant field name for choosing w or q mode. */
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
87 public static final String FIELD_WQ = "wq";
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
88
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
89 /** The constant field name for choosing single values or range. */
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
90 public static final String FIELD_MODE = "mode";
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
91
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
92 /** The constant field value for range input mode. */
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
93 public static final String FIELD_MODE_RANGE = "range";
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
94
5640
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5635
diff changeset
95 /** Service to fetch W/Q MainValues. */
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
96 protected WQInfoServiceAsync wqInfoService =
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
97 GWT.create(WQInfoService.class);
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
98
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
99 /** The message class that provides i18n strings. */
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
100 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
101
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
102 /** Stores the input panels related to their keys. */
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
103 protected Map<String, DoubleArrayPanel> wqranges;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
104
5527
6dbc111e9aec WQAdaptedInputPanel: Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5526
diff changeset
105 /** List of doubleArrayPanels shown. */
5526
35cd6286da2d WQAdaptedInputPanel: Switch focus when input had been done via inputhelper (part flys/issue1133).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5447
diff changeset
106 protected ArrayList<DoubleArrayPanel> doubleArrayPanels;
35cd6286da2d WQAdaptedInputPanel: Switch focus when input had been done via inputhelper (part flys/issue1133).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5447
diff changeset
107
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
108 /** [startkm,endkm] per gauge in selected range. */
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
109 protected double[][] gaugeRanges;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
110
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
111 /** Stores the min/max values for each q range (gauge). */
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
112 protected Map<String, double[]> qranges;
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
113
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
114 /** Stores the min/max values for each w range (gauge). */
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
115 protected Map<String, double[]> wranges;
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
116
5635
cda844f8d126 WQAdaptedInputPanel: cosmetics in docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5527
diff changeset
117 /** The RadioGroupItem that determines the w/q input mode. */
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
118 protected DynamicForm modes;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
119
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
120 /** List of wTables in inputhelper section. */
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
121 protected List<WTable> wTables;
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
122
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
123 /** List of QDTables in inputhelper section. */
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
124 protected List<QDTable> qdTables;
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
125
5196
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5195
diff changeset
126 /** Tabs in inputhelper area. */
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
127 protected TabSet tabs;
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
128
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
129 /** The currently focussed Input element. */
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
130 protected DoubleArrayPanel itemWithFocus;
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
131
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
132
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 public WQAdaptedInputPanel() {
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
134 wqranges = new HashMap<String, DoubleArrayPanel>();
5526
35cd6286da2d WQAdaptedInputPanel: Switch focus when input had been done via inputhelper (part flys/issue1133).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5447
diff changeset
135 doubleArrayPanels = new ArrayList<DoubleArrayPanel>();
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
136 qranges = new HashMap<String, double[]>();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
137 wranges = new HashMap<String, double[]>();
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
138 wTables = new ArrayList<WTable>();
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
139 qdTables = new ArrayList<QDTable>();
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 }
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
6666
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
143 /** Create labels, canvasses, layouts. */
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
144 @Override
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 public Canvas create(DataList data) {
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
146 readGaugeRanges(data);
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
147 initHelperPanel();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
148
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 Canvas submit = getNextButton();
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
150 Canvas widget = createWidget(data);
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
151 Label label = new Label(MSG.wqadaptedTitle());
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
152
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
153 label.setHeight(25);
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 VLayout layout = new VLayout();
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 layout.setMembersMargin(10);
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
157 layout.setWidth(350);
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
159 layout.addMember(label);
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
160 layout.addMember(widget);
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 layout.addMember(submit);
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
163 fetchWQData();
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
164
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
165 initTableListeners();
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
166
6413
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
167 // We actually want the first Q tab to be selected and all
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
168 // Q tabs to be enabled. I sense a bug in TabSet here, as
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
169 // the code in the W/Q radiogroup-changehandler behaves
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
170 // exactly vice versa (enabling Q, selecting tab 0).
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
171 enableWTabs();
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
172 tabs.selectTab(1);
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
173
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 return layout;
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 }
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177
5190
7b37876b2f51 WQAdaptedInputPanel: fix i18n, added todo as now method is full dupe.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5155
diff changeset
178 /** Inits the helper panel. */
7b37876b2f51 WQAdaptedInputPanel: fix i18n, added todo as now method is full dupe.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5155
diff changeset
179 // TODO duplicate in WQInputPanel
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
180 protected void initHelperPanel() {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
181 tabs = new TabSet();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
182 tabs.setWidth100();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
183 tabs.setHeight100();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
184
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
185 // For each gauge, add two tabs with helper tables.
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
186
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
187 for (int i = 0; i< gaugeRanges.length; i++) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
188 // Later the tabs title will get adjusted to include gauges name.
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
189 // TODO the tabs title becomes rather long through that (i18n).
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
190 Tab wTab = new Tab(MESSAGE.wq_table_w());
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
191 Tab qTab = new Tab(MESSAGE.wq_table_q());
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
192
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
193 QDTable qdTable = new QDTable();
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
194 WTable wTable = new WTable();
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
195
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
196 wTables.add(wTable);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
197 qdTables.add(qdTable);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
198
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
199 qdTable.showSelect();
6666
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
200 wTable.showSelect();
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
201 wTab.setPane(wTable);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
202 qTab.setPane(qdTable);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
203
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
204 tabs.addTab(wTab, i*2+0);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
205 tabs.addTab(qTab, i*2+1);
6413
c1b01cf2e91b issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6271
diff changeset
206 //tabs.disableTab(i*2+1);
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
207 }
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
208
6271
9b7f1288e6c4 WQAdaptedInputPanel: Ensure correct initial default selection ("Q").
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6100
diff changeset
209 // Defaults at "Q", first input field.
9b7f1288e6c4 WQAdaptedInputPanel: Ensure correct initial default selection ("Q").
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6100
diff changeset
210 tabs.selectTab(0);
9b7f1288e6c4 WQAdaptedInputPanel: Ensure correct initial default selection ("Q").
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6100
diff changeset
211 enableQTabs();
9b7f1288e6c4 WQAdaptedInputPanel: Ensure correct initial default selection ("Q").
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6100
diff changeset
212
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
213 helperContainer.addMember(tabs);
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
214 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
215
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
216
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
217 /**
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
218 * Initializes the listeners of the WQD tables.
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
219 */
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
220 // TODO dupe from WQInputPanel
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
221 protected void initTableListeners() {
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
222 int i = 0;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
223 for (QDTable qdTable: qdTables) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
224 // Register listener such that values are filled in on click.
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
225 final QDTable table = qdTable;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
226 final int fi = i;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
227 CellClickHandler handler = new CellClickHandler() {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
228 @Override
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
229 public void onCellClick(CellClickEvent e) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
230 if (isWMode() || table.isLocked()) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
231 return;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
232 }
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
233
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
234 Record r = e.getRecord();
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
235 double val = r.getAttributeAsDouble("value");
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
236
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
237 doubleArrayPanels.get(fi).setValues(new double[]{val});
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
238 // If a named value for first gauge is chosen,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
239 // try to find and set
5774
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
240 // the values to the other panels too.
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
241 if (fi == 0) {
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
242 String valueName = r.getAttribute("name");
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
243 int oi = 0;
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
244 // TODO instead of oi use random access.
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
245 for (QDTable otherQDTable: qdTables) {
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
246 if (oi == 0) {
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
247 oi++;
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
248 continue;
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
249 }
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
250 Double value = otherQDTable.findRecordValue(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
251 valueName);
5774
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
252 if (value == null) {
6014
2132c4b70cf9 issue1259: i18n msg when named main value not found at all gauges.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6006
diff changeset
253 SC.warn(MSG.noMainValueAtGauge());
5774
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
254 }
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
255 else {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
256 doubleArrayPanels.get(oi).setValues(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
257 new double[]{value});
5774
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
258 }
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
259 oi++;
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
260 }
5526
35cd6286da2d WQAdaptedInputPanel: Switch focus when input had been done via inputhelper (part flys/issue1133).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5447
diff changeset
261 }
5774
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
262 else {
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
263 // Focus next.
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
264 if (fi != doubleArrayPanels.size()-1) {
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
265 doubleArrayPanels.get(fi+1).focusInItem(1);
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
266 }
5774
496c8c9d4913 issue1260, issue1259: Improve multi-gauge w/q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5773
diff changeset
267 }
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
268 }
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
269 };
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
270
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
271 qdTable.addCellClickHandler(handler);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
272 i++;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
273 }
6666
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
274
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
275 i = 0;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
276 for (WTable wTable: wTables) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
277 // Register listener such that values are filled in on click.
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
278 final WTable table = wTable;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
279 final int fi = i;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
280 CellClickHandler handler = new CellClickHandler() {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
281 @Override
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
282 public void onCellClick(CellClickEvent e) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
283 if (!isWMode() /*|| table.isLocked()*/) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
284 return;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
285 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
286
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
287 Record r = e.getRecord();
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
288 double val = r.getAttributeAsDouble("value");
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
289
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
290 doubleArrayPanels.get(fi).setValues(new double[]{val});
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
291 // If a named value for first gauge is chosen,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
292 // try to find and set
6666
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
293 // the values to the other panels too.
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
294 if (fi == 0) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
295 String valueName = r.getAttribute("name");
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
296 int oi = 0;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
297 // TODO instead of oi use random access.
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
298 for (WTable otherWTable: wTables) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
299 if (oi == 0) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
300 oi++;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
301 continue;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
302 }
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
303 Double value = otherWTable.findRecordValue(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
304 valueName);
6666
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
305 if (value == null) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
306 // TODO: afterwards it freaks out
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
307 SC.warn(MSG.noMainValueAtGauge());
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
308 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
309 else {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
310 doubleArrayPanels.get(oi).setValues(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
311 new double[]{value});
6666
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
312 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
313 oi++;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
314 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
315 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
316 else {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
317 // Focus next.
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
318 if (fi != doubleArrayPanels.size()-1) {
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
319 doubleArrayPanels.get(fi+1).focusInItem(1);
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
320 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
321 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
322 }
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
323 };
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
324
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
325 wTable.addCellClickHandler(handler);
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
326 i++;
3c4c0ea52bbb issue1259: in WQAdaptedInputPanel (vollmer w/q-input) allow
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6413
diff changeset
327 }
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
328 }
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
329
5527
6dbc111e9aec WQAdaptedInputPanel: Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5526
diff changeset
330
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
331 @Override
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
332 public Canvas createOld(DataList dataList) {
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
333 List<Data> all = dataList.getAll();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
334 Data wqData = getData(all, "wq_values");
2392
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
335 Data wqMode = getData(all, "wq_isq");
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
336 boolean isQ = wqMode.getItems()[0].getStringValue().equals("true");
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
337 Canvas back = getBackButton(dataList.getState());
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
338
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
339 HLayout valLayout = new HLayout();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
340 HLayout modeLayout = new HLayout();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
341 VLayout vlayout = new VLayout();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
342
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
343 Label wqLabel = new Label(dataList.getLabel());
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
344 Label modeLabel = new Label("");
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
345
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
346 wqLabel.setValign(VerticalAlignment.TOP);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
347
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
348 wqLabel.setWidth(200);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
349 wqLabel.setHeight(25);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
350 modeLabel.setHeight(25);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
351 modeLabel.setWidth(200);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
352
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
353 valLayout.addMember(wqLabel);
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
354 valLayout.addMember(createOldWQValues(wqData, isQ));
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
355
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
356 valLayout.addMember(back);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
357 modeLayout.addMember(modeLabel);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
358
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
359 vlayout.addMember(valLayout);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
360 vlayout.addMember(modeLayout);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
361
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
362 return vlayout;
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
363 }
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
364
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
365
5124
17f4cd1acc96 WQAdaptedInputPanel: Picky doc and wsp cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5123
diff changeset
366 /** Create area showing previously entered w or q data. */
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
367 protected Canvas createOldWQValues(Data wqData, boolean isQ) {
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
368 VLayout layout = new VLayout();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
369
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
370 DataItem item = wqData.getItems()[0];
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
371 String value = item.getStringValue();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
372
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
373 String[] gauges = value.split(GAUGE_SEPARATOR);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
374
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
375 String unit = isQ ? "m³/s" : "cm";
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
376
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
377 for (String gauge: gauges) {
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
378 HLayout h = new HLayout();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
379
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
380 String[] parts = gauge.split(GAUGE_PART_SEPARATOR);
5104
5f70c73b11ed Display gauge names in WQAdapted input panel instead of gauge range.
Raimund Renkert <rrenkert@intevation.de>
parents: 4568
diff changeset
381 String[] values = parts[3].split(VALUE_SEPARATOR);
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
382
5104
5f70c73b11ed Display gauge names in WQAdapted input panel instead of gauge range.
Raimund Renkert <rrenkert@intevation.de>
parents: 4568
diff changeset
383 Label l = new Label(parts[2] + ": ");
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
384
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
385 StringBuilder sb = new StringBuilder();
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
386 boolean first = true;
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
387
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
388 for (String v: values) {
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
389 if (!first) {
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
390 sb.append(", ");
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
391 }
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
392
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
393 sb.append(v);
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
394 sb.append(" ");
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
395 sb.append(unit);
247
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
396
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
397 first = false;
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
398 }
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
399
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
400 Label v = new Label(sb.toString());
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
401
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
402 l.setWidth(65);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
403 v.setWidth(65);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
404
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
405 h.addMember(l);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
406 h.addMember(v);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
407
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
408 layout.addMember(h);
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
409 }
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
410
4a684d29404f Implemented the createOld() of WQAdaptedInputPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 246
diff changeset
411 return layout;
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
412 }
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
413
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
414
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
415 /** Create non-input helper part of the UI. */
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
416 protected Canvas createWidget(DataList dataList) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
417 VLayout layout = new VLayout();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
418
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
419 Canvas mode = createMode(dataList);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
420 Canvas list = createList(dataList);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
421
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
422 DataItem[] items = getWQItems(dataList);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
423 int listHeight = ROW_HEIGHT * items.length;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
424
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
425 mode.setHeight(25);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
426 mode.setWidth(200);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
427
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
428 layout.addMember(mode);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
429 layout.addMember(list);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
430
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
431 layout.setHeight(25 + listHeight);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
432 layout.setWidth(350);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
433
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
434 initUserDefaults(dataList);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
435
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
436 return layout;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
437 }
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
438
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
439
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
440 @Override
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
441 public List<String> validate() {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
442 if (isWMode()) {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
443 return validateW();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
444 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
445 else {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
446 return validateQ();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
447 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
448 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
449
5527
6dbc111e9aec WQAdaptedInputPanel: Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5526
diff changeset
450
5123
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
451 protected List<String> validateRange(Map<String, double[]> ranges) {
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
452 List<String> errors = new ArrayList<String>();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
453 NumberFormat nf = NumberFormat.getDecimalFormat();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
454
6100
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
455 for (Map.Entry<String, DoubleArrayPanel> entry: wqranges.entrySet()) {
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
456
6100
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
457 String key = entry.getKey();
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
458 DoubleArrayPanel dap = entry.getValue();
602
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
459
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
460 if (!dap.validateForm()) {
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
461 errors.add(MSG.error_invalid_double_value());
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
462 return errors;
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
463 }
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
464
5123
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
465 double[] mm = ranges.get(key);
602
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
466 if (mm == null) {
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
467 SC.warn(MSG.error_read_minmax_values());
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
468 continue;
3b670af34367 The adapted WQ panel now displays warnings if no information are present to validate user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 565
diff changeset
469 }
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
470
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
471 double[] values = dap.getInputValues();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
472 double[] good = new double[values.length];
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
473
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
474 int idx = 0;
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
475
6100
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
476 List<String> tmpErrors = new ArrayList<String>();
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
477 for (double value: values) {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
478 if (value < mm[0] || value > mm[1]) {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
479 String tmp = MSG.error_validate_range();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
480 tmp = tmp.replace("$1", nf.format(value));
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
481 tmp = tmp.replace("$2", nf.format(mm[0]));
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
482 tmp = tmp.replace("$3", nf.format(mm[1]));
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
483 tmpErrors.add(tmp);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
484 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
485 else {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
486 good[idx++] = value;
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
487 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
488 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
489
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
490 double[] justGood = new double[idx];
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
491 for (int i = 0; i < justGood.length; i++) {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
492 justGood[i] = good[i];
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
493 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
494
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
495 if (!tmpErrors.isEmpty()) {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
496 dap.setValues(justGood);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
497
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
498 errors.addAll(tmpErrors);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
499 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
500 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
501
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
502 return errors;
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
503 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
504
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
505
5123
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
506 protected List<String> validateW() {
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
507 return validateRange(wranges);
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
508 }
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
509
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
510
5123
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
511 protected List<String> validateQ() {
64766b89beb6 WQAdaptedInputPanel: Refactored to remove code dupes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5104
diff changeset
512 return validateRange(qranges);
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
513 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
514
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
515
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
516 protected void initUserDefaults(DataList dataList) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
517 initUserWQValues(dataList);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
518 initUserWQMode(dataList);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
519 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
520
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
521
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
522 protected void initUserWQMode(DataList dataList) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
523 List<Data> allData = dataList.getAll();
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
524
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
525 Data dDef = getData(allData, "wq_mode");
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
526 DataItem def = dDef != null ? dDef.getDefault() : null;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
527 String value = def != null ? def.getStringValue() : null;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
528
617
5bf652ba4581 #182 Initial WQ mode in adapted wq panel is now Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 602
diff changeset
529 if (value != null && value.equals(FIELD_WQ_W)) {
5bf652ba4581 #182 Initial WQ mode in adapted wq panel is now Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 602
diff changeset
530 modes.setValue(FIELD_WQ_MODE, FIELD_WQ_W);
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
531 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
532 else {
617
5bf652ba4581 #182 Initial WQ mode in adapted wq panel is now Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 602
diff changeset
533 modes.setValue(FIELD_WQ_MODE, FIELD_WQ_Q);
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
534 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
535 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
536
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
537
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
538 protected void initUserWQValues(DataList dataList) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
539 List<Data> allData = dataList.getAll();
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
540
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
541 Data dDef = getData(allData, "wq_values");
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
542 DataItem def = dDef != null ? dDef.getDefault() : null;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
543 String value = def != null ? def.getStringValue() : null;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
544
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
545 if (value == null || value.length() == 0) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
546 return;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
547 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
548
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
549 String[] lines = value.split(GAUGE_SEPARATOR);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
550
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
551 if (lines == null || lines.length == 0) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
552 return;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
553 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
554
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
555 for (String line: lines) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
556 String[] cols = line.split(GAUGE_PART_SEPARATOR);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
557 String title = createLineTitle(line);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
558
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
559 if (cols == null || cols.length < 3) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
560 continue;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
561 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
562
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
563 String[] strValues = cols[2].split(VALUE_SEPARATOR);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
564 double[] values = new double[strValues.length];
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
565
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
566 int idx = 0;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
567
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
568 for (String strValue: strValues) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
569 try {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
570 values[idx++] = Double.valueOf(strValue);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
571 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
572 catch (NumberFormatException nfe) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
573 // do nothing
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
574 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
575 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
576
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
577 String key = cols[0] + GAUGE_PART_SEPARATOR + cols[1];
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
578 DoubleArrayPanel dap = wqranges.get(key);
560
5274b9317e40 #139 Fixed NPE while initialising user defined values in the adapted wq panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 519
diff changeset
579
5274b9317e40 #139 Fixed NPE while initialising user defined values in the adapted wq panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 519
diff changeset
580 if (dap == null) {
5274b9317e40 #139 Fixed NPE while initialising user defined values in the adapted wq panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 519
diff changeset
581 continue;
5274b9317e40 #139 Fixed NPE while initialising user defined values in the adapted wq panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 519
diff changeset
582 }
5274b9317e40 #139 Fixed NPE while initialising user defined values in the adapted wq panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 519
diff changeset
583
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
584 dap.setValues(values);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
585 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
586 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
587
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
588 /** Populate Gauge Ranges array. */
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
589 private void readGaugeRanges(DataList dataList) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
590 DataItem[] items = getWQItems(dataList);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
591 gaugeRanges = new double[items.length][2];
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5921
diff changeset
592
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
593 int i = 0;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
594
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
595 for (DataItem item: items) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
596 String[] startEndKm = item.getLabel().split(";");
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
597
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
598 gaugeRanges[i][0] = Double.parseDouble(startEndKm[0]);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
599 gaugeRanges[i][1] = Double.parseDouble(startEndKm[1]);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
600 i++;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
601 }
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
602 }
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
603
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 255
diff changeset
604
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
605 protected Canvas createList(DataList dataList) {
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
606 VLayout layout = new VLayout();
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
607
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
608 DataItem[] items = getWQItems(dataList);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
609
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
610 int i = 0;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
611
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
612 for (DataItem item: items) {
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
613 String title = item.getLabel(); // of form: 70.5;112.0
5104
5f70c73b11ed Display gauge names in WQAdapted input panel instead of gauge range.
Raimund Renkert <rrenkert@intevation.de>
parents: 4568
diff changeset
614 String label = item.getStringValue();
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
615
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
616 // Rename W and Q tab to include gauges name.
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
617 tabs.getTab(i*2).setTitle(tabs.getTab(i*2).getTitle()
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
618 + " (" + label + ")");
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
619 tabs.getTab(i*2+1).setTitle(tabs.getTab(i*2+1).getTitle()
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
620 + " (" + label + ")");
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
621
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
622 DoubleArrayPanel dap = new DoubleArrayPanel(
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
623 label, null, this, this, TitleOrientation.LEFT);
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
624
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
625 wqranges.put(title, dap);
5526
35cd6286da2d WQAdaptedInputPanel: Switch focus when input had been done via inputhelper (part flys/issue1133).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5447
diff changeset
626 doubleArrayPanels.add(dap);
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
627
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
628 if (item instanceof WQDataItem) {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
629 WQDataItem wq = (WQDataItem) item;
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
630 double[] mmQ = wq.getQRange();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
631 double[] mmW = wq.getWRange();
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
632
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
633 qranges.put(title, mmQ);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
634 wranges.put(title, mmW);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
635 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
636
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
637 layout.addMember(dap);
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
638 i++;
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
639 }
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
640
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
641 layout.setHeight(items.length * ROW_HEIGHT);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
642
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
643 return layout;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
644 }
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
645
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
646
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
647 /** Get items which are not WQ_MODE. */
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
648 protected DataItem[] getWQItems(DataList dataList) {
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
649 List<Data> data = dataList.getAll();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
650
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
651 for (Data d: data) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
652 String name = d.getLabel();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
653
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
654 if (name.equals(FIELD_WQ_MODE)) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
655 continue;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
656 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
657
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
658 return d.getItems();
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
659 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
660
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
661 return null;
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
662 }
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
663
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
664
5154
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
665 /**
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
666 * Create radio button for switching w and q input.
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
667 * Radiobutton-change also triggers helper panel tab selection.
56091d58a99f Partly fix flys/issue1127 (show unit in wqadapted) and added documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5124
diff changeset
668 */
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
669 protected Canvas createMode(DataList dataList) {
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
670 RadioGroupItem wq = new RadioGroupItem(FIELD_WQ_MODE);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
671 wq.setShowTitle(false);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
672 wq.setVertical(false);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
673 wq.setWidth(200);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
674
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
675 LinkedHashMap wqValues = new LinkedHashMap();
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
676 wqValues.put(FIELD_WQ_W, MSG.wqW());
5104
5f70c73b11ed Display gauge names in WQAdapted input panel instead of gauge range.
Raimund Renkert <rrenkert@intevation.de>
parents: 4568
diff changeset
677 wqValues.put(FIELD_WQ_Q, MSG.wqQatGauge());
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
678
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
679 wq.setValueMap(wqValues);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
680
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
681 modes = new DynamicForm();
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
682 modes.setFields(wq);
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
683 modes.setWidth(200);
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
684 wq.addChangeHandler(new ChangeHandler() {
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
685 @Override
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
686 public void onChange(ChangeEvent e) {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
687 DynamicForm form = e.getForm();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
688
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
689 if(form.getValueAsString(FIELD_WQ_MODE).contains("Q")) {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
690 tabs.selectTab(0);
5921
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
691 enableQTabs();
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
692 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
693 else {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
694 tabs.selectTab(1);
5921
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
695 enableWTabs();
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
696 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
697 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
698 });
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
699
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
700
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
701 LinkedHashMap initial = new LinkedHashMap();
617
5bf652ba4581 #182 Initial WQ mode in adapted wq panel is now Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 602
diff changeset
702 initial.put(FIELD_WQ_MODE, FIELD_WQ_Q);
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
703 modes.setValues(initial);
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
704 tabs.selectTab(1);
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
705 return modes;
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
706 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
707
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
708
5921
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
709 public void enableWTabs() {
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
710 for (int i = 0; i < doubleArrayPanels.size(); i++) {
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
711 tabs.disableTab(2*i);
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
712 tabs.enableTab(2*i+1);
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
713 }
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
714 }
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
715
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
716
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
717 public void enableQTabs() {
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
718 for (int i = 0; i < doubleArrayPanels.size(); i++) {
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
719 tabs.enableTab(2*i);
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
720 tabs.disableTab(2*i+1);
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
721 }
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
722 }
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
723
17b07104d093 issue1259: Grey out inputhelper Ws when Qs are to be chosen and vice versa.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5861
diff changeset
724
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
725 public String createLineTitle(String key) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
726 String[] splitted = key.split(";");
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
727
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
728 return splitted[0] + " - " + splitted[1];
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
729 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
730
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
731
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
732 @Override
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
733 public Data[] getData() {
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
734 Data mode = getWQMode();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
735 Data values = getWQValues();
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
736
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
737 return new Data[] { mode, values };
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
738 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
739
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
740
565
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
741 public boolean isWMode() {
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
742 String mode = (String) modes.getValue(FIELD_WQ_MODE);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
743
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
744 return FIELD_WQ_W.equals(mode);
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
745 }
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
746
a078ba1c139d Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 560
diff changeset
747
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
748 protected Data getWQMode() {
255
e4f0bef52689 Added radio buttons to choose between W/Q modes in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 247
diff changeset
749 String wqMode = modes.getValueAsString(FIELD_WQ_MODE);
2392
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
750 String value = "false";
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
751 if (wqMode.equals("Q")) {
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
752 value = "true";
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
753 }
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
754 DataItem item = new DefaultDataItem("wq_isq", "wq_isq", value);
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
755 Data mode = new DefaultData(
2392
8112ec686a9a Picked rev4066,4075 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 617
diff changeset
756 "wq_isq", null, null, new DataItem[] { item });
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
757
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
758 return mode;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
759 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
760
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
761
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
762 protected Data getWQValues() {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
763 String wqvalue = null;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
764
6100
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
765 for (Map.Entry<String, DoubleArrayPanel> entry: wqranges.entrySet()) {
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
766 String key = entry.getKey();
de92e0cdebdc GWT client: Removed some Iterator cruft.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6014
diff changeset
767 DoubleArrayPanel dap = entry.getValue();
5104
5f70c73b11ed Display gauge names in WQAdapted input panel instead of gauge range.
Raimund Renkert <rrenkert@intevation.de>
parents: 4568
diff changeset
768 String label = dap.getItemTitle();
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
769
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
770 double[] values = dap.getInputValues();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
771 if (wqvalue == null) {
5104
5f70c73b11ed Display gauge names in WQAdapted input panel instead of gauge range.
Raimund Renkert <rrenkert@intevation.de>
parents: 4568
diff changeset
772 wqvalue = createValueString(key + ";" + label, values);
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
773 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
774 else {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
775 wqvalue += GAUGE_SEPARATOR
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
776 + createValueString(key + ";" + label, values);
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
777 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
778 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
779
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
780 DataItem valueItem = new DefaultDataItem(
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
781 "wq_values", "wq_values", wqvalue);
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
782 Data values = new DefaultData(
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
783 "wq_values", null, null, new DataItem[] { valueItem });
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
784
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
785 return values;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
786 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
787
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
788
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
789 protected String createValueString(String key, double[] values) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
790 StringBuilder sb = new StringBuilder();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
791
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
792 boolean first = true;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
793
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
794 for (double value: values) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
795 if (!first) {
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
796 sb.append(",");
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
797 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
798
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
799 sb.append(Double.toString(value));
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
800
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
801 first = false;
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
802 }
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
803
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
804 return key + ";" + sb.toString();
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
805 }
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
806
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
807
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
808 @Override
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
809 public void onChange(ChangeEvent event) {
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
810 // TODO IMPLEMENT ME
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
811 }
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
812
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
813
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
814 /** Store the currently focussed DoubleArrayPanel and focus helper tab. */
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
815 @Override
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
816 public void onFocus(FocusEvent event) {
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
817 itemWithFocus = (DoubleArrayPanel) event.getForm();
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
818 // Switch to respective tab.
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
819 // TODO which makes a focus loss
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
820 int inputIndex = doubleArrayPanels.indexOf(itemWithFocus);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
821 tabs.selectTab(inputIndex*2 + (isWMode() ? 0 : 1));
5195
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
822 }
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
823
d07abdb7ed7f flys/issue1137: Allow value selection via inputhelpers in WQAdaptedPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5190
diff changeset
824
4568
bbd82bd8e541 flys-client: Cosmetics and warnings.
Christian Lins <christian.lins@intevation.de>
parents: 3969
diff changeset
825 @Override
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
826 public void onBlur(BlurEvent event) {
246
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
827 DoubleArrayPanel dap = (DoubleArrayPanel) event.getForm();
ccba1a0b743e The WQAdaptedInputPanel displays input fields for each gauge and returns the correct w/q values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 243
diff changeset
828 dap.validateForm(event.getItem());
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
829 }
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
830
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
831
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
832 /** Get the WQD data from service and stuck them up that tables. */
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
833 protected void fetchWQData() {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
834 Config config = Config.getInstance();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
835 String locale = config.getLocale ();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
836
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
837 ArtifactDescription adescr = artifact.getArtifactDescription();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
838 DataList[] data = adescr.getOldData();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
839
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
840 double[] mm = getMinMaxKM(data);
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
841 String river = getRiverName(data);
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
842
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
843 int i = 0;
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
844
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
845 // Get Data for respective gauge.
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
846 for (double[] range : gaugeRanges){
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
847 // Gauge ranges overlap, move start and end a bit closer
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
848 // to each other.
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
849 final double rDiff = (range[1] - range[0]) / 10d;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
850 final int fi = i;
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
851 wqInfoService.getWQInfo(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
852 locale, river, range[0]+rDiff, range[1]-rDiff,
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
853 new AsyncCallback<WQInfoObject[]>() {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
854 @Override
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
855 public void onFailure(Throwable caught) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
856 GWT.log("Could not recieve wq informations.");
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
857 SC.warn(caught.getMessage());
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
858 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
859
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
860 @Override
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
861 public void onSuccess(WQInfoObject[] wqi) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
862 int num = wqi != null ? wqi.length :0;
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
863 GWT.log("Received " + num
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 6666
diff changeset
864 + " wq informations (" + fi + ".");
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
865
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
866 if (num == 0) {
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
867 return;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
868 }
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
869
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
870 addWQInfo(wqi, fi);
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
871 }
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
872 }
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
873 );
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
874 i++;
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
875 }
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
876 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
877
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
878
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
879 /** Add Info to helper table for gauge at index gaugeIdx. */
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
880 protected void addWQInfo (WQInfoObject[] wqi, int gaugeIdx) {
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
881 for(WQInfoObject wi: wqi) {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
882 WQInfoRecord rec = new WQInfoRecord(wi);
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
883
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
884 if (wi.getType().equals("W")) {
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
885 wTables.get(gaugeIdx).addData(rec);
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
886 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
887 else {
5773
cdc47534a970 issue1133: Improved multi-gauge W/Q input.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5640
diff changeset
888 qdTables.get(gaugeIdx).addData(rec);
2456
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
889 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
890 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
891 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
892
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
893
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
894 /**
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
895 * Determines the min and max kilometer value selected in a former state. A
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
896 * bit silly, but we need to run over each value of the "old data" to find
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
897 * such values because it is not available here.
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
898 *
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
899 * @param data The DataList which contains the whole data inserted for the
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
900 * current artifact.
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
901 *
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
902 * @return a double array with [min, max].
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
903 */
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
904 protected double[] getMinMaxKM(DataList[] data) {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
905 ArtifactDescription adesc = artifact.getArtifactDescription();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
906 return adesc.getKMRange();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
907 }
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
908
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
909
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
910 /**
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
911 * Returns the name of the selected river.
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
912 *
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
913 * @param data The DataList with all data.
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
914 *
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
915 * @return the name of the current river.
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
916 */
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
917 protected String getRiverName(DataList[] data) {
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
918 ArtifactDescription adesc = artifact.getArtifactDescription();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
919 return adesc.getRiver();
60ab1054069d Issue 630.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2432
diff changeset
920 }
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
921 }
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
922 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org