annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationPanel.java @ 8447:4b315e5d2d4f

(issue1733) Remove weird and broken code (fixes tab selection) This code did not make any sense to me. Why should the tabs be removed and readded. Just selecting them works.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 27 Oct 2014 12:38:22 +0100
parents ea9eef426962
children 5e38e2924c07
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 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 * This UIProvider serves as base for UI Providers to enter a single location (km).
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 public abstract class LocationPanel
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 extends AbstractUIProvider
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
38 private static final long serialVersionUID = -5306604428440015046L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
39
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 /** A container that will contain the location or the distance panel. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 protected HLayout inputLayout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 /** The minimal value that the user is allowed to enter. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 protected double min;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46 /** The maximal value that the user is allowed to enter. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 protected double max;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 /** The values entered in the location mode. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 protected double[] values;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51
1593
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
52 /** 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
53 protected String dataItemName;
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
54
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 /** The input panel for locations. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 protected DoubleArrayPanel locationPanel;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57
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 * Creates a new LocationDistancePanel instance.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 public LocationPanel() {
1617
f13a7c126f24 Allow selection of multiple locations with mouse in MultipleLocationPanel.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1615
diff changeset
63 values = new double[0];
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64 }
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 * This method creates a widget that contains a label, a panel with
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 * checkboxes to switch the input mode between location and distance input,
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 * and a mode specific panel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 * @param data The data that might be inserted.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 * @return a panel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 @Override
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 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
78 findDataItemName(data);
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
79
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 VLayout layout = new VLayout();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 layout.setMembersMargin(10);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
83 // 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
84 Label label = new Label(MSG.location());
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85 Canvas widget = createWidget(data);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 Canvas submit = getNextButton();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 initDefaults(data);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 widget.setHeight(50);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 label.setHeight(25);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93 layout.addMember(label);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 layout.addMember(widget);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 layout.addMember(submit);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
96
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 return layout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
101 /** 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
102 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
103 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
104 }
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
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
107 /** 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
108 public String getDataItemName() {
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
109 return this.dataItemName;
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
110 }
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
111
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113 /**
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114 * This method creates a Canvas element showing the old Data objects in the
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 * DataList <i>data</i>.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 */
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
117 @Override
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 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
119 findDataItemName(dataList);
ff9d71469b7c Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1591
diff changeset
120
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 List<Data> items = dataList.getAll();
1618
95b821d63db3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1617
diff changeset
122 Data dLocation = getData(items, getDataItemName());
95b821d63db3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1617
diff changeset
123 DataItem[] loc = dLocation.getItems();
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125 HLayout layout = new HLayout();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 layout.setWidth("400px");
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 Label label = new Label(dataList.getLabel());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 label.setWidth("200px");
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 Canvas back = getBackButton(dataList.getState());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
133 // TODO evaluate: isn't this what findDataItemName is doing?
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 Label selected = new Label(loc[0].getLabel());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 selected.setWidth("130px");
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 layout.addMember(label);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 layout.addMember(selected);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 layout.addMember(back);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141 return layout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
142 }
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 * This method reads the default values defined in the DataItems of the Data
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 * objects in <i>list</i>.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 * @param list The DataList container that stores the Data objects.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151 protected void initDefaults(DataList list) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152 Data data = list.get(0);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
154 DataItem[] items = data.getItems();
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
155 DataItem iMin = getDataItem(items, "min");
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
156 DataItem iMax = getDataItem(items, "max");
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
157
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
158 try {
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
159 min = Double.parseDouble(iMin.getStringValue());
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
160 max = Double.parseDouble(iMax.getStringValue());
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161 }
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
162 catch (NumberFormatException nfe) {
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
163 SC.warn(MSG.error_read_minmax_values());
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
164 min = -Double.MAX_VALUE;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
165 max = Double.MAX_VALUE;
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 DataItem def = data.getDefault();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169 String value = def.getStringValue();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
170
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171 try {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 double d = Double.parseDouble(value);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 setLocationValues(new double[] { d } );
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 catch (NumberFormatException nfe) {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
176 // 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
177 GWT.log("LocationPanel", nfe);
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 }
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 * 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
184 * returns it.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 * @param items A list of Data.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 * @param name The name of the Data that we are searching for.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
188 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189 * @return the Data with the name <i>name</i>.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
191 @Override
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 protected Data getData(List<Data> data, String name) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 for (Data d: data) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194 if (name.equals(d.getLabel())) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
195 return d;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
196 }
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 return null;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 }
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 protected Canvas createWidget(DataList data) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
204 VLayout layout = new VLayout();
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
205 inputLayout = new HLayout();
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
206
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
207 // The initial view will display the location input mode.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
208 locationPanel = new DoubleArrayPanel(
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
209 MSG.unitLocation(),
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
210 getLocationValues(),
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
211 new BlurHandler(){@Override
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
212 public void onBlur(BlurEvent be) {}});
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
213
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
214 // TODO Remove picker references, refactor such that subclasses can
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
215 // easily use their picker if they want.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
216 //picker.getLocationTable().setAutoFetchData(true);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
217
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
218 inputLayout.addMember(locationPanel);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
219
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
220 layout.addMember(inputLayout);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
221
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
222 inputLayout.setMembersMargin(30);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
223
1615
07c38d054f91 Translate data item in locationpanel label.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1612
diff changeset
224 /*
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
225 //picker.prepareFilter();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
226 helperContainer.addMember(picker.getLocationTable());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
227 helperContainer.addMember(picker.getFilterLayout());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
228 helperContainer.addMember(picker.getResultCountForm());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
229 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
230 return layout;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
231 }
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 @Override
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
235 public List<String> validate() {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
236 List<String> errors = new ArrayList<String>();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
237 NumberFormat nf = NumberFormat.getDecimalFormat();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
238
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
239 saveLocationValues(locationPanel);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
240
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
241 if (!locationPanel.validateForm()) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
242 errors.add(MSG.wrongFormat());
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
243 return errors;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
244 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
245
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
246 double[] values = getLocationValues();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
247 double[] good = new double[values.length];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
248 int idx = 0;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
249
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
250 for (double value: values) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
251 if (value < min || value > max) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
252 String tmp = MSG.error_validate_range();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
253 tmp = tmp.replace("$1", nf.format(value));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
254 tmp = tmp.replace("$2", nf.format(min));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
255 tmp = tmp.replace("$3", nf.format(max));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
256 errors.add(tmp);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
257 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
258 else {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
259 good[idx++] = value;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
260 }
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 double[] justGood = new double[idx];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
264 for (int i = 0; i < justGood.length; i++) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
265 justGood[i] = good[i];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
266 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
267
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
268 if (!errors.isEmpty()) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
269 locationPanel.setValues(justGood);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
270 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
271
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
272 return errors;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
273 }
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 * Validates and stores all values entered in the location mode.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
278 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
279 * @param p The DoubleArrayPanel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
280 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
281 protected void saveLocationValues(DoubleArrayPanel p) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
282 FormItem[] formItems = p.getFields();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
283
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
284 for (FormItem item: formItems) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
285 if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
286 saveLocationValue(p, item);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
287 }
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 * Validates and stores a value entered in the location mode.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
294 *
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
295 * @param p The DoubleArrayPanel.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
296 * @param item The item that needs to be validated.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
297 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
298 protected void saveLocationValue(DoubleArrayPanel p, FormItem item) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
299 if (p.validateForm(item)) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
300 setLocationValues(p.getInputValues(item));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
301 }
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 /** Get the location values. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
306 protected double[] getLocationValues() {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
307 return values;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
308 }
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 /** Sets Location values and updates the panel. */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
312 protected void setLocationValues(double[] values) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
313 this.values = values;
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
314 locationPanel.setValues(values);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
315 }
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 * Callback when an item from the input helper was clicked.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
320 * Set the respective km-value in the location value field.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
321 * @param e event passed.
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
322 */
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
323 public void onRecordClick (RecordClickEvent e) {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
324 Record record = e.getRecord();
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
325 double[] selected = new double[1];
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
326 try {
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
327 selected[0] =
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
328 Double.parseDouble(record.getAttribute("from"));
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
329 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
330 catch(NumberFormatException nfe) {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
331 GWT.log("onRecordClick", nfe);
1591
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
332 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
333 setLocationValues(selected);
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
334 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
335 }
8ab010967f78 Refactored.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
336 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org