annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationPanel.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
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: 5861
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: 5861
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;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
11 import com.google.gwt.core.client.GWT;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import com.google.gwt.i18n.client.NumberFormat;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
14 import com.smartgwt.client.data.Record;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.util.SC;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.Canvas;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.Label;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
18 import com.smartgwt.client.widgets.form.fields.FormItem;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
20 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
21 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import com.smartgwt.client.widgets.layout.HLayout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import com.smartgwt.client.widgets.layout.VLayout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.shared.model.DataList;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
29 import java.util.ArrayList;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
30 import java.util.List;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
31
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 /**
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5993
diff changeset
33 * This UIProvider serves as base for UI Providers to enter
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5993
diff changeset
34 * a single location (km).
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 public abstract class LocationPanel
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 extends AbstractUIProvider
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
39 private static final long serialVersionUID = -5306604428440015046L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
40
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 /** A container that will contain the location or the distance panel. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 protected HLayout inputLayout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 /** The minimal value that the user is allowed to enter. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 protected double min;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 /** The maximal value that the user is allowed to enter. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 protected double max;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 /** The values entered in the location mode. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 protected double[] values;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52
1593
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
53 /** Name of the data item that keeps this location(s). */
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
54 protected String dataItemName;
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
55
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 /** The input panel for locations. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 protected DoubleArrayPanel locationPanel;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 * Creates a new LocationDistancePanel instance.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 public LocationPanel() {
1617
f13a7c126f24 Allow selection of multiple locations with mouse in MultipleLocationPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1615
diff changeset
64 values = new double[0];
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 * This method creates a widget that contains a label, a panel with
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 * checkboxes to switch the input mode between location and distance input,
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71 * and a mode specific panel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 * @param data The data that might be inserted.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 * @return a panel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 @Override
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 public Canvas create(DataList data) {
1593
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
79 findDataItemName(data);
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
80
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 VLayout layout = new VLayout();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 layout.setMembersMargin(10);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
84 // Subclass uses translated data items name as label.
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
85 Label label = new Label(MSG.location());
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 Canvas widget = createWidget(data);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 Canvas submit = getNextButton();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89 initDefaults(data);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 widget.setHeight(50);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92 label.setHeight(25);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 layout.addMember(label);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 layout.addMember(widget);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
96 layout.addMember(submit);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 return layout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
102 /** Store label of first data item in list. */
1593
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
103 public void findDataItemName(DataList list) {
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
104 this.dataItemName = list.getAll().get(0).getLabel();
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
105 }
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
106
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
107
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
108 /** Get label of first data item that this uiprovider has seen. */
1593
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
109 public String getDataItemName() {
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
110 return this.dataItemName;
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
111 }
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
112
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 * This method creates a Canvas element showing the old Data objects in the
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 * DataList <i>data</i>.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 */
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
118 @Override
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 public Canvas createOld(DataList dataList) {
1593
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
120 findDataItemName(dataList);
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
121
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122 List<Data> items = dataList.getAll();
1618
95b821d63db3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1617
diff changeset
123 Data dLocation = getData(items, getDataItemName());
95b821d63db3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1617
diff changeset
124 DataItem[] loc = dLocation.getItems();
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 HLayout layout = new HLayout();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 layout.setWidth("400px");
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 Label label = new Label(dataList.getLabel());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130 label.setWidth("200px");
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132 Canvas back = getBackButton(dataList.getState());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
134 // TODO evaluate: isn't this what findDataItemName is doing?
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 Label selected = new Label(loc[0].getLabel());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 selected.setWidth("130px");
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 layout.addMember(label);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 layout.addMember(selected);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 layout.addMember(back);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142 return layout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
143 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 * This method reads the default values defined in the DataItems of the Data
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 * objects in <i>list</i>.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 * @param list The DataList container that stores the Data objects.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 protected void initDefaults(DataList list) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 Data data = list.get(0);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
155 DataItem[] items = data.getItems();
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
156 DataItem iMin = getDataItem(items, "min");
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
157 DataItem iMax = getDataItem(items, "max");
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
158
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
159 try {
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
160 min = Double.parseDouble(iMin.getStringValue());
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
161 max = Double.parseDouble(iMax.getStringValue());
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 }
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
163 catch (NumberFormatException nfe) {
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
164 SC.warn(MSG.error_read_minmax_values());
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
165 min = -Double.MAX_VALUE;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
166 max = Double.MAX_VALUE;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169 DataItem def = data.getDefault();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
170 String value = def.getStringValue();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 try {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 double d = Double.parseDouble(value);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 setLocationValues(new double[] { d } );
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176 catch (NumberFormatException nfe) {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
177 // could not parse, don't know what else to do
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
178 GWT.log("LocationPanel", nfe);
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
180 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
183 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184 * This method grabs the Data with name <i>name</i> from the list and
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 * returns it.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 * @param items A list of Data.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
188 * @param name The name of the Data that we are searching for.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 * @return the Data with the name <i>name</i>.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
191 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 @Override
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 protected Data getData(List<Data> data, String name) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194 for (Data d: data) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
195 if (name.equals(d.getLabel())) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
196 return d;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
197 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
198 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
199
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 return null;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
201 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
202
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
203
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
204 protected Canvas createWidget(DataList data) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
205 VLayout layout = new VLayout();
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
206 inputLayout = new HLayout();
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
207
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
208 // The initial view will display the location input mode.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
209 locationPanel = new DoubleArrayPanel(
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
210 MSG.unitLocation(),
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
211 getLocationValues(),
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
212 new BlurHandler(){@Override
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
213 public void onBlur(BlurEvent be) {}});
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
214
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
215 // TODO Remove picker references, refactor such that subclasses can
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
216 // easily use their picker if they want.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
217 //picker.getLocationTable().setAutoFetchData(true);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
218
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
219 inputLayout.addMember(locationPanel);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
220
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
221 layout.addMember(inputLayout);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
222
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
223 inputLayout.setMembersMargin(30);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
224
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
225 /*
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
226 //picker.prepareFilter();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
227 helperContainer.addMember(picker.getLocationTable());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
228 helperContainer.addMember(picker.getFilterLayout());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
229 helperContainer.addMember(picker.getResultCountForm());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
230 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
231 return layout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
232 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
233
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
234
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
235 @Override
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
236 public List<String> validate() {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
237 List<String> errors = new ArrayList<String>();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
238 NumberFormat nf = NumberFormat.getDecimalFormat();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
239
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
240 saveLocationValues(locationPanel);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
241
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
242 if (!locationPanel.validateForm()) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
243 errors.add(MSG.wrongFormat());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
244 return errors;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
245 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
246
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
247 double[] values = getLocationValues();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
248 double[] good = new double[values.length];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
249 int idx = 0;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
250
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
251 for (double value: values) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
252 if (value < min || value > max) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
253 String tmp = MSG.error_validate_range();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
254 tmp = tmp.replace("$1", nf.format(value));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
255 tmp = tmp.replace("$2", nf.format(min));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
256 tmp = tmp.replace("$3", nf.format(max));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
257 errors.add(tmp);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
258 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
259 else {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
260 good[idx++] = value;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
261 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
262 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
263
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
264 double[] justGood = new double[idx];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
265 for (int i = 0; i < justGood.length; i++) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
266 justGood[i] = good[i];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
267 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
268
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
269 if (!errors.isEmpty()) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
270 locationPanel.setValues(justGood);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
271 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
272
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
273 return errors;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
274 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
275
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
276
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
277 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
278 * Validates and stores all values entered in the location mode.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
279 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
280 * @param p The DoubleArrayPanel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
281 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
282 protected void saveLocationValues(DoubleArrayPanel p) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
283 FormItem[] formItems = p.getFields();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
284
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
285 for (FormItem item: formItems) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
286 if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
287 saveLocationValue(p, item);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
288 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
289 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
290 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
291
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
292
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
293 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
294 * Validates and stores a value entered in the location mode.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
295 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
296 * @param p The DoubleArrayPanel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
297 * @param item The item that needs to be validated.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
298 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
299 protected void saveLocationValue(DoubleArrayPanel p, FormItem item) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
300 if (p.validateForm(item)) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
301 setLocationValues(p.getInputValues(item));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
302 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
303 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
304
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
305
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
306 /** Get the location values. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
307 protected double[] getLocationValues() {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
308 return values;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
309 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
310
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
311
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
312 /** Sets Location values and updates the panel. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
313 protected void setLocationValues(double[] values) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
314 this.values = values;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
315 locationPanel.setValues(values);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
316 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
317
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
318
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
319 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
320 * Callback when an item from the input helper was clicked.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
321 * Set the respective km-value in the location value field.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
322 * @param e event passed.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
323 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
324 public void onRecordClick (RecordClickEvent e) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
325 Record record = e.getRecord();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
326 double[] selected = new double[1];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
327 try {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
328 selected[0] =
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
329 Double.parseDouble(record.getAttribute("from"));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
330 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
331 catch(NumberFormatException nfe) {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
332 GWT.log("onRecordClick", nfe);
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
333 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
334 setLocationValues(selected);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
335 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
336 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
337 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org