Mercurial > dive4elements > river
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 : |