annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java @ 9175:34dc0163ad2d

DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
author gernotbelger
date Mon, 25 Jun 2018 17:58:11 +0200
parents 5e38e2924c07
children 7337034eb5d5
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;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
11 import java.util.ArrayList;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
12 import java.util.LinkedHashMap;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
13 import java.util.List;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
14
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
15 import org.dive4elements.river.client.client.Config;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
16 import org.dive4elements.river.client.client.FLYSConstants;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
17 import org.dive4elements.river.client.client.event.FilterHandler;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
18 import org.dive4elements.river.client.client.event.RangeFilterEvent;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
19 import org.dive4elements.river.client.client.event.StringFilterEvent;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
20 import org.dive4elements.river.client.client.services.DistanceInfoService;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
21 import org.dive4elements.river.client.client.services.DistanceInfoServiceAsync;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
22 import org.dive4elements.river.client.client.ui.range.DistanceInfoDataSource;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
23 import org.dive4elements.river.client.shared.model.ArtifactDescription;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
24 import org.dive4elements.river.client.shared.model.Data;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
25 import org.dive4elements.river.client.shared.model.DataItem;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
26 import org.dive4elements.river.client.shared.model.DataList;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
27 import org.dive4elements.river.client.shared.model.DefaultData;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
28 import org.dive4elements.river.client.shared.model.DefaultDataItem;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
29 import org.dive4elements.river.client.shared.model.DistanceInfoObject;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
30
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 import com.google.gwt.core.client.GWT;
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
32 import com.google.gwt.i18n.client.NumberFormat;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
33 import com.smartgwt.client.data.AdvancedCriteria;
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
34 import com.smartgwt.client.data.Criteria;
1536
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
35 import com.smartgwt.client.data.Criterion;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
36 import com.smartgwt.client.data.Record;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
37 import com.smartgwt.client.types.Alignment;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
38 import com.smartgwt.client.types.ListGridFieldType;
1536
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
39 import com.smartgwt.client.types.OperatorId;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 import com.smartgwt.client.widgets.Canvas;
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 import com.smartgwt.client.widgets.Label;
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 import com.smartgwt.client.widgets.form.DynamicForm;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
43 import com.smartgwt.client.widgets.form.fields.FormItem;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
44 import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
45 import com.smartgwt.client.widgets.form.fields.SelectItem;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
46 import com.smartgwt.client.widgets.form.fields.StaticTextItem;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
48 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
49 import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
51 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
52 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
53 import com.smartgwt.client.widgets.grid.CellFormatter;
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
54 import com.smartgwt.client.widgets.grid.ListGrid;
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
55 import com.smartgwt.client.widgets.grid.ListGridField;
906
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
56 import com.smartgwt.client.widgets.grid.ListGridRecord;
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
57 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
58 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
59 import com.smartgwt.client.widgets.layout.HLayout;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
60 import com.smartgwt.client.widgets.layout.VLayout;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
61 import com.smartgwt.client.widgets.tab.Tab;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
62 import com.smartgwt.client.widgets.tab.TabSet;
893
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
63 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
64 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
65
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 /**
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 * This UIProvider creates a widget to enter locations or a distance.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 *
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
71 public class LocationDistancePanel extends AbstractUIProvider implements ChangeHandler, BlurHandler, FilterHandler {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
72 private static final long serialVersionUID = -10820092176039372L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
73
838
a5e96a36478c Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 788
diff changeset
74 /** The message class that provides i18n strings. */
211
b92281182c6b Removed the FLYSMessages interface and replaced it with a FLYSConstants interface - this interface has the ability to lookup i18n strings with given keys.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 101
diff changeset
75 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
838
a5e96a36478c Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 788
diff changeset
77 /** The DistanceInfoService used to retrieve locations about rivers. */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
78 protected DistanceInfoServiceAsync distanceInfoService = GWT.create(DistanceInfoService.class);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
80 public static final String FIELD_MODE = "mode";
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
81
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
82 /** The constant name of the input field to enter the start of a distance. */
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 public static final String FIELD_FROM = "from";
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
85 /** The constant name of the input field to enter the end of a distance. */
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 public static final String FIELD_TO = "to";
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
88 /** The constant name of the input field to enter locations. */
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
89 public static final String FIELD_VALUE_LOCATION = "location";
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
90
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
91 /** The constant name of the input field to enter distance. */
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
92 public static final String FIELD_VALUE_DISTANCE = "distance";
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
93
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
94 /**
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
95 * The constant name of the input field to enter the step width of a
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
96 * distance.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
97 */
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 public static final String FIELD_WIDTH = "width";
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
100 public static final int WIDTH = 250;
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
101
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
102 /** The radio group for input mode selection. */
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
103 protected DynamicForm mode;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
105 /** A container that will contain the location or the distance panel. */
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 protected HLayout container;
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
108 /** The min value for a distance. */
55
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
109 protected double min;
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
110
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
111 /** The max value for a distance. */
55
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
112 protected double max;
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
113
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
114 /** The 'from' value entered in the distance mode. */
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
115 protected double from;
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
116
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
117 /** The 'to' value entered in the distance mode. */
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
118 protected double to;
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
119
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
120 /** The 'step' value entered in the distance mode. */
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
121 protected double step;
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
122
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
123 /** The values entered in the location mode. */
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
124 protected double[] values;
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
125
838
a5e96a36478c Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 788
diff changeset
126 /** The input panel for locations. */
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
127 protected DoubleArrayPanel locationPanel;
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
128
838
a5e96a36478c Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 788
diff changeset
129 /** The input panel for distances. */
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
130 protected DoubleRangePanel distancePanel;
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
131
838
a5e96a36478c Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 788
diff changeset
132 /** The tab set containing the location and distance table. */
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
133 protected TabSet inputTables;
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
134
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
135 /** The distance table. */
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
136 protected ListGrid distanceTable;
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
137
838
a5e96a36478c Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 788
diff changeset
138 /** The locations table. */
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
139 protected ListGrid locationsTable;
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
140
237
cf25f235b7b6 Cash the table data and rebuild the location table on distance selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 235
diff changeset
141 /** The table data. */
cf25f235b7b6 Cash the table data and rebuild the location table on distance selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 235
diff changeset
142 protected DistanceInfoObject[] tableData;
cf25f235b7b6 Cash the table data and rebuild the location table on distance selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 235
diff changeset
143
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
144 /** The table filter. */
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
145 protected TableFilter filterDescription;
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
146 protected RangeTableFilter filterRange;
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
147
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
148 /** The Combobox for table filter criteria. */
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
149 protected SelectItem filterCriteria;
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
150 protected StaticTextItem filterResultCount;
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
151 protected ListGrid currentFiltered;
893
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
152
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 /**
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 * Creates a new LocationDistancePanel instance.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 */
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 public LocationDistancePanel() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
157 this.distanceTable = new ListGrid();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
158 this.distanceTable.setAutoFetchData(true);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
159
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
160 this.locationsTable = new ListGrid();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
161 this.locationsTable.setAutoFetchData(true);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
162
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
163 this.distanceTable.setShowHeaderContextMenu(false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
164 this.locationsTable.setShowHeaderContextMenu(false);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 /**
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168 * This method creates a widget that contains a label, a panel with
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169 * checkboxes to switch the input mode between location and distance input,
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 * and a the mode specific panel.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
172 * @param data
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
173 * The data that might be inserted.
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 *
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 * @return a panel.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176 */
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
177 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
178 public Canvas create(final DataList data) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
179 final VLayout layout = new VLayout();
83
4784ca718476 Improved the positioning of helper widgets and some layout specific stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 59
diff changeset
180 layout.setMembersMargin(10);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
182 final Label label = getLabel(data);// new Label(MESSAGES.location_distance_state());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
183 final Canvas widget = createWidget(data);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
184 final Canvas submit = getNextButton();
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
185 createDistanceInputPanel();
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
186
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
187 initDefaults(data);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
188
83
4784ca718476 Improved the positioning of helper widgets and some layout specific stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 59
diff changeset
189 widget.setHeight(50);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 label.setHeight(25);
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 layout.addMember(label);
45
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
193 layout.addMember(widget);
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
194 layout.addMember(submit);
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
195
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
196 return layout;
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
197 }
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
198
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
199 protected Label getLabel(final DataList data) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
200 final Data item = data.get(0);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
201 return new Label(item.getDescription());//
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
202 // TODO: migrate distance_part_state to server
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
203 // item.getDescription()); // holt das Label vom Server (funktoniert schon sehr oft so!)
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
204 }
45
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
205
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
206 /**
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
207 * Setup a table for a DistanceInfoDataSource.
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
208 *
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
209 * Sets up a table to for input completion. The table
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
210 * can be used either for single locations or distances.
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
211 * Depending on the value of isDistance the table will
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
212 * have a to and a from column or a single location column.
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
213 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
214 * @param table
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
215 * the ListGrid to set up.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
216 * @param doublePins
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
217 * wether or not to have.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
218 * @param isDistance
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
219 * wether or not to and from should be included.
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
220 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
221 protected void setupDistanceInfoTable(final ListGrid table, final boolean doublePins, final boolean isDistance) {
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
222
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
223 final String baseUrl = GWT.getHostPageBaseURL();
1399
748e7c828d03 Issue312.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1394
diff changeset
224
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
225 table.setWidth100();
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
226 table.setShowRecordComponents(true);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
227 table.setShowRecordComponentsByCell(true);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
228 table.setHeight100();
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
229 table.setEmptyMessage(this.MESSAGES.empty_filter());
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
230 table.setCanReorderFields(false);
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
231
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
232 final CellFormatter cf = new CellFormatter() {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
233 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
234 public String format(final Object value, final ListGridRecord record, final int rowNum, final int colNum) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
235 if (value == null)
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
236 return null;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
237 try {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
238 NumberFormat nf;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
239 final double v = Double.parseDouble((String) value);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
240 nf = NumberFormat.getFormat("###0.00##");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
241 return nf.format(v);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
242 }
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
243 catch (final Exception e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
244 return value.toString();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
245 }
1390
13d07b7daa89 Issue 342.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1318
diff changeset
246 }
13d07b7daa89 Issue 342.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1318
diff changeset
247 };
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
248 ListGridField pin1 = null;
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
249 ListGridField pin2 = null;
1390
13d07b7daa89 Issue 342.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1318
diff changeset
250
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
251 if (doublePins) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
252 pin1 = new ListGridField("fromIcon", this.MESSAGES.from());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
253 pin1.setWidth(30);
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
254 } else {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
255 pin1 = new ListGridField("fromIcon", this.MESSAGES.selection());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
256 pin1.setWidth(60);
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
257 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
258 pin1.setType(ListGridFieldType.ICON);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
259 pin1.setCellIcon(baseUrl + this.MESSAGES.markerGreen());
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
260
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
261 if (doublePins) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
262 pin2 = new ListGridField("toIcon", this.MESSAGES.to());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
263 pin2.setType(ListGridFieldType.ICON);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
264 pin2.setWidth(30);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
265 pin2.setCellIcon(baseUrl + this.MESSAGES.markerRed());
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
266 }
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
267
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
268 if (isDistance) {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
269 /* We have from / to fields */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
270 pin1.addRecordClickHandler(new RecordClickHandler() {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
271 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
272 public void onRecordClick(final RecordClickEvent e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
273 final Record r = e.getRecord();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
274 if (!isLocationMode()) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
275 /* distance panel and distance mode */
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
276 setFrom(r.getAttribute("from"));
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
277 setTo(r.getAttribute("to"));
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
278 } else {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
279 /* distance panel and location mode */
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
280 /* Pin 1 is the "from" pin */
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
281 appendLocation(r.getAttribute("from"));
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
282 }
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
283 }
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
284 });
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
285 if (doublePins) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
286 pin2.addRecordClickHandler(new RecordClickHandler() {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
287 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
288 public void onRecordClick(final RecordClickEvent e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
289 final Record r = e.getRecord();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
290 if (isLocationMode()) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
291 appendLocation(r.getAttribute("to"));
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
292 } else {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
293 /*
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
294 * Distance and double pin behavior is only
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
295 * defined for location mode.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
296 */
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
297 GWT.log("Unhandled input state.");
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
298 }
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
299 }
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
300 });
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
301 }
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
302 } else {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
303 /* We only have the from field */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
304 pin1.addRecordClickHandler(new RecordClickHandler() {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
305 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
306 public void onRecordClick(final RecordClickEvent e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
307 final Record r = e.getRecord();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
308 if (!isLocationMode()) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
309 /* Location panel and distance mode */
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
310 setFrom(r.getAttribute("from"));
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
311 } else {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
312 /* Location panel and location mode */
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
313 appendLocation(r.getAttribute("from"));
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
314 }
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
315 }
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
316 });
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
317 if (doublePins) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
318 pin2.addRecordClickHandler(new RecordClickHandler() {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
319 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
320 public void onRecordClick(final RecordClickEvent e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
321 final Record r = e.getRecord();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
322 if (!isLocationMode()) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
323 setTo(r.getAttribute("from"));
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
324 } else {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
325 /*
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
326 * Distance and double pin behavior is only
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
327 * defined for location mode.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
328 */
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
329 GWT.log("Unhandled input state.");
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
330 }
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
331 }
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
332 });
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
333 }
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
334 }
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
335
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
336 final ListGridField ddescr = new ListGridField("description", this.MESSAGES.description());
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
337 ddescr.setType(ListGridFieldType.TEXT);
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
338 ddescr.setWidth("*");
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
339
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
340 ListGridField from;
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
341 ListGridField to = null;
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
342
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
343 if (isDistance) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
344 from = new ListGridField("from", this.MESSAGES.from());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
345 to = new ListGridField("to", this.MESSAGES.to());
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
346 to.setType(ListGridFieldType.FLOAT);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
347 to.setCellFormatter(cf);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
348
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
349 to.setWidth("12%");
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
350 to.setAlign(Alignment.LEFT);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
351 } else {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
352 from = new ListGridField("from", this.MESSAGES.locations());
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
353 }
1390
13d07b7daa89 Issue 342.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1318
diff changeset
354 from.setCellFormatter(cf);
886
2161d3acc83f Changed field size from fixed to percental value in helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 876
diff changeset
355 from.setWidth("12%");
906
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
356
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
357 final ListGridField dside = new ListGridField("riverside", this.MESSAGES.riverside());
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
358 dside.setType(ListGridFieldType.TEXT);
886
2161d3acc83f Changed field size from fixed to percental value in helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 876
diff changeset
359 dside.setWidth("12%");
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
360
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
361 final ListGridField bottom = new ListGridField("bottom", this.MESSAGES.bottom_edge());
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 562
diff changeset
362 bottom.setType(ListGridFieldType.TEXT);
886
2161d3acc83f Changed field size from fixed to percental value in helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 876
diff changeset
363 bottom.setWidth("10%");
1390
13d07b7daa89 Issue 342.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1318
diff changeset
364 bottom.setCellFormatter(cf);
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 562
diff changeset
365
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
366 final ListGridField top = new ListGridField("top", this.MESSAGES.top_edge());
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 562
diff changeset
367 top.setType(ListGridFieldType.TEXT);
886
2161d3acc83f Changed field size from fixed to percental value in helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 876
diff changeset
368 top.setWidth("10%");
1390
13d07b7daa89 Issue 342.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1318
diff changeset
369 top.setCellFormatter(cf);
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 562
diff changeset
370
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
371 if (doublePins && isDistance) {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
372 table.setFields(pin1, pin2, ddescr, from, to, dside, bottom, top);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
373 } else if (doublePins) {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
374 table.setFields(pin1, pin2, ddescr, from, dside, bottom, top);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
375 } else if (isDistance) {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
376 table.setFields(pin1, ddescr, from, to, dside, bottom, top);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
377 } else {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
378 table.setFields(pin1, ddescr, from, dside, bottom, top);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
379 }
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
380 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
381
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
382 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
383 public Canvas createOld(final DataList dataList) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
384 final List<Data> items = dataList.getAll();
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
385
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
386 final Data dMode = getData(items, "ld_mode");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
387 final DataItem[] dItems = dMode.getItems();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
388
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
389 boolean rangeMode = true;
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
390 if (dItems != null && dItems[0] != null) {
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
391 rangeMode = FIELD_VALUE_DISTANCE.equals(dItems[0].getStringValue());
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
392 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
393
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
394 final HLayout layout = new HLayout();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
395 layout.setWidth("400px");
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
396
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
397 final Label label = new Label(dataList.getLabel());
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
398 label.setWidth("200px");
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
399
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
400 final Canvas back = getBackButton(dataList.getState());
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
401
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
402 layout.addMember(label);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
403
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
404 if (rangeMode) {
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
405 layout.addMember(getOldRangeSelection(dataList));
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
406 } else {
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
407 layout.addMember(getOldLocationSelection(dataList));
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
408 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
409
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
410 layout.addMember(back);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
411
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
412 return layout;
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
413 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
414
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
415 /**
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
416 * Creates a label for the selected range.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
417 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
418 * @param dataList
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
419 * The DataList containing all values for this state.
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
420 *
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
421 * @return A label displaying the selected values.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
422 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
423 protected Label getOldRangeSelection(final DataList dataList) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
424 final List<Data> items = dataList.getAll();
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
425
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
426 final Data dFrom = getData(items, "ld_from");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
427 final Data dTo = getData(items, "ld_to");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
428 final Data dStep = getData(items, "ld_step");
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
429
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
430 final DataItem[] from = dFrom.getItems();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
431 final DataItem[] to = dTo.getItems();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
432 final DataItem[] step = dStep.getItems();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
433
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
434 final StringBuilder sb = new StringBuilder();
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
435 sb.append(from[0].getLabel());
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
436 sb.append(" " + this.MESSAGES.unitFrom() + " ");
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
437 sb.append(to[0].getLabel());
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
438 sb.append(" " + this.MESSAGES.unitTo() + " ");
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
439 sb.append(step[0].getLabel());
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
440 sb.append(" " + this.MESSAGES.unitWidth());
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
441
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
442 final Label selected = new Label(sb.toString());
91
0d8203594bb4 Resized CollectionView and set the content size to have a tabled style.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
443 selected.setWidth("130px");
0d8203594bb4 Resized CollectionView and set the content size to have a tabled style.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
444
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
445 return selected;
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
446 }
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
447
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
448 /**
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
449 * Creates a label for the selected locations.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
450 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
451 * @param dataList
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
452 * The DataList containing all values for this state.
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
453 *
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
454 * @return A label displaying the selected values.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
455 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
456 protected Label getOldLocationSelection(final DataList dataList) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
457 final List<Data> items = dataList.getAll();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
458
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
459 final Data dLocations = getData(items, "ld_locations");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
460 final DataItem[] lItems = dLocations.getItems();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
461
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
462 final String[] splitted = lItems[0].getStringValue().split(" ");
3542
9647a6548320 Issue 664.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3526
diff changeset
463 String value = "";
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
464 for (final String element : splitted) {
3542
9647a6548320 Issue 664.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3526
diff changeset
465 try {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
466 final NumberFormat nf = NumberFormat.getDecimalFormat();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
467 final double dv = Double.parseDouble(element);
3542
9647a6548320 Issue 664.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3526
diff changeset
468 value += nf.format(dv) + " ";
9647a6548320 Issue 664.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3526
diff changeset
469 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
470 catch (final NumberFormatException nfe) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
471 value += element + " ";
3542
9647a6548320 Issue 664.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3526
diff changeset
472 }
9647a6548320 Issue 664.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3526
diff changeset
473 }
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
474
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
475 final Label selected = new Label(value);
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
476 selected.setWidth(130);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
477
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
478 return selected;
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
479 }
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
480
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
481 /**
55
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
482 * This method reads the default values defined in the DataItems of the Data
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
483 * objects in <i>list</i>.
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
484 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
485 * @param list
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
486 * The DataList container that stores the Data objects.
55
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
487 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
488 protected void initDefaults(final DataList list) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
489 final Data m = getData(list.getAll(), "ld_mode");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
490 final Data l = getData(list.getAll(), "ld_locations");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
491 final Data f = getData(list.getAll(), "ld_from");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
492 final Data t = getData(list.getAll(), "ld_to");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
493 final Data s = getData(list.getAll(), "ld_step");
55
4439f642f632 Read min/max values for the distance mode in the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 53
diff changeset
494
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
495 final DataItem[] fItems = f.getItems();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
496 final DataItem[] tItems = t.getItems();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
497 final DataItem[] sItems = s.getItems();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
498
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
499 this.min = Double.valueOf(fItems[0].getStringValue());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
500 this.max = Double.valueOf(tItems[0].getStringValue());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
501 this.step = Double.valueOf(sItems[0].getStringValue());
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
502
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
503 final DataItem mDef = m.getDefault();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
504 final DataItem lDef = l.getDefault();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
505 final DataItem fDef = f.getDefault();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
506 final DataItem tDef = t.getDefault();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
507 final DataItem sDef = s.getDefault();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
508
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
509 final String mDefValue = mDef != null ? mDef.getStringValue() : null;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
510 final String theMode = mDefValue != null && mDefValue.length() > 0 ? mDef.getStringValue() : FIELD_VALUE_DISTANCE;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
511
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
512 this.mode.setValue(FIELD_MODE, theMode);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
513
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
514 final String fDefValue = fDef != null ? fDef.getStringValue() : null;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
515 setFrom(fDefValue != null && fDefValue.length() > 0 ? Double.valueOf(fDef.getStringValue()) : this.min);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
516
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
517 final String tDefValue = tDef != null ? tDef.getStringValue() : null;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
518 setTo(tDefValue != null && tDefValue.length() > 0 ? Double.valueOf(tDef.getStringValue()) : this.max);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
519
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
520 final String sDefValue = sDef != null ? sDef.getStringValue() : null;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
521 setStep(sDefValue != null && sDefValue.length() > 0 ? Double.valueOf(sDef.getStringValue()) : this.step);
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
522
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
523 if (lDef != null) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
524 final String lDefValue = lDef != null ? lDef.getStringValue() : null;
517
ec965bf8dfef Take care on empty Data objects while initializing default values in Location/distance panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 516
diff changeset
525
ec965bf8dfef Take care on empty Data objects while initializing default values in Location/distance panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 516
diff changeset
526 if (lDefValue != null && lDefValue.length() > 0) {
ec965bf8dfef Take care on empty Data objects while initializing default values in Location/distance panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 516
diff changeset
527 setLocationValues(lDef.getStringValue());
ec965bf8dfef Take care on empty Data objects while initializing default values in Location/distance panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 516
diff changeset
528 }
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
529 }
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
530
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
531 if (theMode.equals(FIELD_VALUE_DISTANCE)) {
8448
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
532 enableDistanceMode();
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
533 this.inputTables.selectTab(1);
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
534 } else {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
535 enableLocationMode();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
536 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
537 this.currentFiltered = (ListGrid) this.inputTables.getSelectedTab().getPane();
8446
75b84f139c1b (issue1733) Clearly set location distance defaults
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8262
diff changeset
538
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
539 this.distancePanel.setValues(getFrom(), getTo(), getStep());
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
540 }
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
541
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
542 protected Canvas createWidget(final DataList data) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
543 final VLayout layout = new VLayout();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
544 this.container = new HLayout();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
545 final Canvas checkboxPanel = createRadioButtonPanel();
45
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
546
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
547 this.locationPanel = new DoubleArrayPanel(this.MESSAGES.unitLocation(), getLocationValues(), this);
8446
75b84f139c1b (issue1733) Clearly set location distance defaults
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8262
diff changeset
548
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
549 this.distancePanel = new DoubleRangePanel(this.MESSAGES.unitFrom(), this.MESSAGES.unitTo(), this.MESSAGES.unitWidth(), 0, 0, 0, /*
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
550 * initDefaults set the
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
551 * default values for
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
552 * this.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
553 */
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
554 400, this);
8262
9321b0cd4ad4 Fixed location distance panel. TODO: Switch to location table and select tabs.
Raimund Renkert <rrenkert@intevation.de>
parents: 7941
diff changeset
555
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
556 this.container.addMember(this.locationPanel);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
557 this.container.addMember(this.distancePanel);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
558 this.container.hideMember(this.locationPanel);
45
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
559
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
560 layout.addMember(checkboxPanel);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
561 layout.addMember(this.container);
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
562
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
563 this.container.setMembersMargin(30);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
564
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
565 this.inputTables = new TabSet();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
566 this.inputTables.addTabSelectedHandler(new TabSelectedHandler() {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
567 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
568 public void onTabSelected(final TabSelectedEvent evt) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
569 LocationDistancePanel.this.filterDescription.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
570 LocationDistancePanel.this.filterRange.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
571 LocationDistancePanel.this.filterResultCount.setValue("");
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
572
8448
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
573 // The assumption is that location is tab 0 and distance tab 1
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
574
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
575 final Canvas c = evt.getTabPane();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
576 if (c instanceof ListGrid) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
577 LocationDistancePanel.this.currentFiltered = (ListGrid) c;
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
578 }
893
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
579 }
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
580 });
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
581
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
582 final Tab locations = new Tab(this.MESSAGES.locations());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
583 final Tab distances = new Tab(this.MESSAGES.distance());
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
584
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
585 this.inputTables.setWidth100();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
586 this.inputTables.setHeight100();
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
587
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
588 locations.setPane(this.locationsTable);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
589 distances.setPane(this.distanceTable);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
590
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
591 this.inputTables.addTab(locations);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
592 this.inputTables.addTab(distances);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
593
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
594 this.filterResultCount = new StaticTextItem(this.MESSAGES.resultCount());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
595 this.filterResultCount.setTitleAlign(Alignment.LEFT);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
596 this.filterResultCount.setTitleStyle("color: #000");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
597
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
598 this.filterDescription = new TableFilter();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
599 this.filterDescription.setHeight("30px");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
600 this.filterDescription.addFilterHandler(this);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
601
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
602 this.filterRange = new RangeTableFilter();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
603 this.filterRange.setHeight("30px");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
604 this.filterRange.addFilterHandler(this);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
605 this.filterRange.setVisible(false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
606
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
607 this.filterCriteria = new SelectItem();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
608 this.filterCriteria.setShowTitle(false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
609 this.filterCriteria.setWidth(100);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
610 this.filterCriteria.addChangedHandler(new ChangedHandler() {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
611 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
612 public void onChanged(final ChangedEvent e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
613 if (e.getValue().toString().equals("range")) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
614 LocationDistancePanel.this.filterRange.setVisible(true);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
615 LocationDistancePanel.this.filterDescription.setVisible(false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
616 LocationDistancePanel.this.filterDescription.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
617 LocationDistancePanel.this.filterResultCount.setValue("");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
618 } else {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
619 LocationDistancePanel.this.filterRange.setVisible(false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
620 LocationDistancePanel.this.filterRange.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
621 LocationDistancePanel.this.filterDescription.setVisible(true);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
622 LocationDistancePanel.this.filterResultCount.setValue("");
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
623 }
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
624 }
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
625 });
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
626
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
627 final LinkedHashMap<String, String> filterMap = new LinkedHashMap<String, String>();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
628 filterMap.put("description", this.MESSAGES.description());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
629 filterMap.put("range", this.MESSAGES.range());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
630 this.filterCriteria.setValueMap(filterMap);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
631 this.filterCriteria.setValue("description");
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
632
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
633 final DynamicForm form = new DynamicForm();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
634 form.setFields(this.filterCriteria);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
635 this.inputTables.setHeight("*");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
636 final DynamicForm form2 = new DynamicForm();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
637 form2.setFields(this.filterResultCount);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
638
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
639 final VLayout helper = new VLayout();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
640 final HLayout filterLayout = new HLayout();
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
641
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
642 filterLayout.addMember(form);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
643 filterLayout.addMember(this.filterDescription);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
644 filterLayout.addMember(this.filterRange);
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
645 filterLayout.setHeight("30px");
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
646 helper.addMember(this.inputTables);
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
647 helper.addMember(filterLayout);
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
648 helper.addMember(form2);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
649 helper.setHeight100();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
650 helper.setWidth100();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
651
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
652 this.helperContainer.addMember(helper);
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
653 filterLayout.setWidth("200");
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
654
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
655 return layout;
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
656 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
657
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
658 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
659 public void onFilterCriteriaChanged(final StringFilterEvent event) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
660 final String search = event.getFilter();
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
661
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
662 if (search != null && search.length() > 0) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
663 final Criteria c = new Criteria("description", search);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
664
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
665 this.locationsTable.filterData(c);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
666 this.distanceTable.filterData(c);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
667 this.filterResultCount.setValue(this.currentFiltered.getRecords().length);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
668 } else {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
669 this.locationsTable.clearCriteria();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
670 this.distanceTable.clearCriteria();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
671 this.filterResultCount.setValue("");
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
672 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
673 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
674
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
675 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
676 public void onFilterCriteriaChanged(final RangeFilterEvent event) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
677 final Float from = event.getFrom() - 0.001f;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
678 final Float to = event.getTo() + 0.001f;
1536
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
679 GWT.log("filtering range: " + from + " to " + to);
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
680
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
681 Criterion combinedFilter = null;
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
682 Criterion locationFilter = null;
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
683 if (from.equals(Float.NaN) && to.equals(Float.NaN)) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
684 this.locationsTable.clearCriteria();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
685 this.distanceTable.clearCriteria();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
686 this.filterResultCount.setValue("");
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
687 return;
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
688 } else if (from.equals(Float.NaN)) {
1536
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
689 combinedFilter = new Criterion("to", OperatorId.LESS_OR_EQUAL, to);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
690 locationFilter = new Criterion("from", OperatorId.LESS_OR_EQUAL, to);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
691 this.locationsTable.filterData(locationFilter);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
692 this.distanceTable.filterData(combinedFilter);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
693 this.filterResultCount.setValue(this.currentFiltered.getRecords().length);
1536
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
694 return;
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
695 } else if (to.equals(Float.NaN)) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
696 combinedFilter = new Criterion("from", OperatorId.GREATER_OR_EQUAL, from);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
697 this.locationsTable.filterData(combinedFilter);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
698 this.distanceTable.filterData(combinedFilter);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
699 } else {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
700 final AdvancedCriteria c1 = new AdvancedCriteria(OperatorId.AND,
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
701 new Criterion[] { new Criterion("from", OperatorId.GREATER_OR_EQUAL, from), new Criterion("from", OperatorId.LESS_OR_EQUAL, to) });
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
702
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
703 final AdvancedCriteria c2 = new AdvancedCriteria(OperatorId.AND,
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
704 new Criterion[] { new Criterion("to", OperatorId.GREATER_OR_EQUAL, from), new Criterion("to", OperatorId.LESS_OR_EQUAL, to) });
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
705
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
706 final AdvancedCriteria c3 = new AdvancedCriteria(OperatorId.AND,
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
707 new Criterion[] { new Criterion("from", OperatorId.LESS_OR_EQUAL, to), new Criterion("to", OperatorId.GREATER_OR_EQUAL, from) });
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
708
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
709 combinedFilter = new AdvancedCriteria(OperatorId.OR, new Criterion[] { c1, c2, c3 });
1536
4f4d29404dba Filter the helper input tables using the range filter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1534
diff changeset
710 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
711 this.locationsTable.filterData(combinedFilter);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
712 this.distanceTable.filterData(combinedFilter);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
713 this.filterResultCount.setValue(this.currentFiltered.getRecords().length);
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1491
diff changeset
714 }
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
715
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
716 @Override
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
717 public List<String> validate() {
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
718 if (isLocationMode()) {
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
719 return validateLocations();
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
720 } else {
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
721 return validateRange();
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
722 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
723 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
724
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
725 protected List<String> validateLocations() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
726 final List<String> errors = new ArrayList<String>();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
727 final NumberFormat nf = NumberFormat.getDecimalFormat();
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
728
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
729 try {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
730 saveLocationValues(this.locationPanel);
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
731 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
732 catch (final Exception e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
733 errors.add(this.MESSAGES.wrongFormat());
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
734 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
735
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
736 final double[] values = getLocationValues();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
737 final double[] good = new double[values.length];
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
738 int idx = 0;
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
739
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
740 for (final double value : values) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
741 if (value < this.min || value > this.max) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
742 String tmp = this.MESSAGES.error_validate_range();
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
743 tmp = tmp.replace("$1", nf.format(value));
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
744 tmp = tmp.replace("$2", nf.format(this.min));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
745 tmp = tmp.replace("$3", nf.format(this.max));
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
746 errors.add(tmp);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
747 } else {
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
748 good[idx++] = value;
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
749 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
750 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
751
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
752 final double[] justGood = new double[idx];
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
753 for (int i = 0; i < justGood.length; i++) {
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
754 justGood[i] = good[i];
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
755 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
756
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
757 if (!errors.isEmpty()) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
758 this.locationPanel.setValues(justGood);
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
759 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
760
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
761 return errors;
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
762 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
763
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
764 protected List<String> validateRange() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
765 final List<String> errors = new ArrayList<String>();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
766 final NumberFormat nf = NumberFormat.getDecimalFormat();
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
767
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
768 try {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
769 saveDistanceValues(this.distancePanel);
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
770 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
771 catch (final Exception e) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
772 errors.add(this.MESSAGES.wrongFormat());
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
773 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
774
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
775 double from = getFrom();
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
776 double to = getTo();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
777 final double step = getStep();
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
778
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
779 if (from < this.min || from > this.max) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
780 String tmp = this.MESSAGES.error_validate_range();
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
781 tmp = tmp.replace("$1", nf.format(from));
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
782 tmp = tmp.replace("$2", nf.format(this.min));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
783 tmp = tmp.replace("$3", nf.format(this.max));
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
784 errors.add(tmp);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
785 from = this.min;
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
786 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
787
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
788 if (to < this.min || to > this.max) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
789 String tmp = this.MESSAGES.error_validate_range();
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
790 tmp = tmp.replace("$1", nf.format(to));
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
791 tmp = tmp.replace("$2", nf.format(this.min));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
792 tmp = tmp.replace("$3", nf.format(this.max));
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
793 errors.add(tmp);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
794 to = this.max;
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
795 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
796
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
797 if (!errors.isEmpty()) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
798 this.distancePanel.setValues(from, to, step);
562
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
799 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
800
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
801 return errors;
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
802 }
9f16ac843dda Introduced a client side validation before new user data are sent to the server - the range/location panel already implements this validation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 520
diff changeset
803
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
804 /**
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
805 * This method returns the selected data.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
806 *
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
807 * @return the selected/inserted data.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
808 */
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
809 @Override
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
810 public Data[] getData() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
811 final List<Data> data = new ArrayList<Data>();
1277
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
812
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
813 // If we have entered a value and click right afterwards on the
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
814 // 'next' button, the BlurEvent is not fired, and the values are not
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
815 // saved. So, we gonna save those values explicitly.
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
816 if (isLocationMode()) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
817 final Canvas member = this.container.getMember(0);
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
818 if (member instanceof DoubleArrayPanel) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
819 final DoubleArrayPanel form = (DoubleArrayPanel) member;
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
820 saveLocationValues(form);
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
821 }
1277
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
822
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
823 final Data dLocations = getDataLocations();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
824 final DataItem dFrom = new DefaultDataItem("ld_from", "ld_from", "");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
825 final DataItem dTo = new DefaultDataItem("ld_to", "ld_to", "");
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
826 final DataItem dStep = new DefaultDataItem("ld_step", "ld_step", "");
1277
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
827
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
828 data.add(dLocations);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
829 data.add(new DefaultData("ld_from", null, null, new DataItem[] { dFrom }));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
830 data.add(new DefaultData("ld_to", null, null, new DataItem[] { dTo }));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
831 data.add(new DefaultData("ld_step", null, null, new DataItem[] { dStep }));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
832 } else {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
833 final Canvas member = this.container.getMember(0);
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
834 if (member instanceof DoubleRangePanel) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
835 final DoubleRangePanel form = (DoubleRangePanel) member;
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
836 saveDistanceValues(form);
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
837 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
838
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
839 final Data dFrom = getDataFrom();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
840 final Data dTo = getDataTo();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
841 final Data dStep = getDataStep();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
842 final DataItem loc = new DefaultDataItem("ld_locations", "ld_locations", "");
520
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
843
1277
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
844 data.add(dFrom);
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
845 data.add(dTo);
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
846 data.add(dStep);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
847 data.add(new DefaultData("ld_locations", null, null, new DataItem[] { loc }));
520
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
848 }
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
849
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
850 final Data dMode = getDataMode();
1277
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
851 if (dMode != null) {
ee55a8ab5f5e Bugfix: #211 Reset values of km range mode if single km mode is selected and the other way arround.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 906
diff changeset
852 data.add(dMode);
520
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
853 }
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
854
3379
0de61fc9d281 Removed some superfluous casts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1589
diff changeset
855 return data.toArray(new Data[data.size()]);
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
856 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
857
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
858 /**
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
859 * Returns the Data object for the 'mode' attribute.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
860 *
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
861 * @return the Data object for the 'mode' attribute.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
862 */
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
863 protected Data getDataMode() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
864 final String value = this.mode.getValueAsString(FIELD_MODE);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
865 final DataItem item = new DefaultDataItem("ld_mode", "ld_mode", value);
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
866 return new DefaultData("ld_mode", null, null, new DataItem[] { item });
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
867 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
868
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
869 protected Data getDataLocations() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
870 final double[] locations = getLocationValues();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
871 boolean first = true;
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
872
520
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
873 if (locations == null) {
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
874 return null;
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
875 }
9e2b151770bd Bugfix in the range/location panel - avoid NullPointerExceptions in getData().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 517
diff changeset
876
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
877 final StringBuilder sb = new StringBuilder();
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
878
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
879 for (final double l : locations) {
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
880 if (!first) {
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
881 sb.append(" ");
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
882 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
883
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
884 sb.append(l);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
885
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
886 first = false;
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
887 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
888
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
889 final DataItem item = new DefaultDataItem("ld_locations", "ld_locations", sb.toString());
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
890
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
891 return new DefaultData("ld_locations", null, null, new DataItem[] { item });
46
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
892 }
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
893
46
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
894 /**
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
895 * Returns the Data object for the 'from' attribute.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
896 *
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
897 * @return the Data object for the 'from' attribute.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
898 */
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
899 protected Data getDataFrom() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
900 final String value = Double.valueOf(getFrom()).toString();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
901 final DataItem item = new DefaultDataItem("ld_from", "ld_from", value);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
902 return new DefaultData("ld_from", null, null, new DataItem[] { item });
46
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
903 }
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
904
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
905 /**
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
906 * Returns the Data object for the 'to' attribute.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
907 *
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
908 * @return the Data object for the 'to' attribute.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
909 */
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
910 protected Data getDataTo() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
911 final String value = Double.valueOf(getTo()).toString();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
912 final DataItem item = new DefaultDataItem("ld_to", "ld_to", value);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
913 return new DefaultData("ld_to", null, null, new DataItem[] { item });
46
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
914 }
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
915
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
916 /**
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
917 * Returns the Data object for the 'step' attribute.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
918 *
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
919 * @return the Data object for the 'step' attribute.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
920 */
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
921 protected Data getDataStep() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
922 final String value = Double.valueOf(getStep()).toString();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
923 final DataItem item = new DefaultDataItem("ld_step", "ld_step", value);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
924 return new DefaultData("ld_step", null, null, new DataItem[] { item });
46
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
925 }
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
926
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
927 /**
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
928 * Determines the current input mode.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
929 *
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
930 * @return true, if 'location' is the current input mode, otherwise false.
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
931 */
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
932 public boolean isLocationMode() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
933 final String inputMode = this.mode.getValueAsString(FIELD_MODE);
46
0d4795b4f284 Implemented the getData() method of the LocationDistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 45
diff changeset
934
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
935 return inputMode.equals(FIELD_VALUE_LOCATION) ? true : false;
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
936 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
937
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
938 /**
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
939 * Activates the location panel.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
940 */
8448
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
941 protected void enableLocationMode() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
942 this.mode.setValue(FIELD_MODE, FIELD_VALUE_LOCATION);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
943 this.container.hideMember(this.distancePanel);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
944 this.container.showMember(this.locationPanel);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
945 setupDistanceInfoTable(this.locationsTable, false, false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
946 setupDistanceInfoTable(this.distanceTable, true, true);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
947 this.inputTables.updateTab(0, this.locationsTable);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
948 this.inputTables.updateTab(1, this.distanceTable);
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
949 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
950
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
951 /**
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
952 * Activates the distance panel.
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
953 */
8448
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
954 protected void enableDistanceMode() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
955 this.mode.setValue(FIELD_MODE, FIELD_VALUE_DISTANCE);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
956 this.container.hideMember(this.locationPanel);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
957 this.container.showMember(this.distancePanel);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
958 setupDistanceInfoTable(this.locationsTable, true, false);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
959 setupDistanceInfoTable(this.distanceTable, false, true);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
960 this.inputTables.updateTab(0, this.locationsTable);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
961 this.inputTables.updateTab(1, this.distanceTable);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
962 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
963
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
964 /**
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
965 * This method switches the input mode between location and distance input.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
966 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
967 * @param event
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
968 * The click event fired by a RadioButtonGroupItem.
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
969 */
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
970 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
971 public void onChange(final ChangeEvent event) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
972 final String value = (String) event.getValue();
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
973
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
974 if (value == null) {
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
975 return;
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
976 }
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
977 if (value.equals(FIELD_VALUE_LOCATION)) {
8448
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
978 enableLocationMode();
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
979 this.filterDescription.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
980 this.filterRange.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
981 this.filterResultCount.setValue("");
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
982
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
983 // Bring this tab to front.
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
984 this.inputTables.selectTab(0);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
985 } else {
8448
e98dbf72c9ec (issue1733) Fix switch between location and distance
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8447
diff changeset
986 enableDistanceMode();
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
987 this.filterDescription.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
988 this.filterRange.clear();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
989 this.filterResultCount.setValue("");
1567
7e738bc8ed75 Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1548
diff changeset
990
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 838
diff changeset
991 // Bring the distanceTable tab to front.
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
992 this.inputTables.selectTab(1);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
993 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
994 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
995
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
996 /**
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
997 * This method is used to validate the inserted data in the form fields.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
998 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
999 * @param event
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1000 * The BlurEvent that gives information about the FormItem that
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1001 * has been modified and its value.
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1002 */
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 3712
diff changeset
1003 @Override
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1004 public void onBlur(final BlurEvent event) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1005 final FormItem item = event.getItem();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1006 final String field = item.getFieldName();
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1007
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1008 if (field == null) {
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1009 return;
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1010 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1011
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1012 if (field.equals(DoubleArrayPanel.FIELD_NAME)) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1013 final DoubleArrayPanel p = (DoubleArrayPanel) event.getForm();
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1014
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1015 saveLocationValue(p, item);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1016 } else {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1017 final DoubleRangePanel p = (DoubleRangePanel) event.getForm();
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1018
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1019 saveDistanceValue(p, item);
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1020 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1021 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1022
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1023 /**
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1024 * Validates and stores all values entered in the location mode.
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1025 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1026 * @param p
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1027 * The DoubleArrayPanel.
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1028 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1029 protected void saveLocationValues(final DoubleArrayPanel p) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1030 final FormItem[] formItems = p.getFields();
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1031
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1032 for (final FormItem item : formItems) {
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1033 if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) {
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1034 saveLocationValue(p, item);
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1035 }
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1036 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1037 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1038
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1039 /**
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1040 * Validates and stores all values entered in the distance mode.
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1041 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1042 * @param p
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1043 * The DoubleRangePanel.
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1044 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1045 protected void saveDistanceValues(final DoubleRangePanel p) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1046 final FormItem[] formItems = p.getFields();
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1047
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1048 for (final FormItem item : formItems) {
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1049 saveDistanceValue(p, item);
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1050 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1051 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1052
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1053 /**
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1054 * Validates and stores a value entered in the location mode.
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1055 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1056 * @param p
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1057 * The DoubleArrayPanel.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1058 * @param item
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1059 * The item that needs to be validated.
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1060 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1061 protected void saveLocationValue(final DoubleArrayPanel p, final FormItem item) {
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1062 if (p.validateForm(item)) {
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1063 setLocationValues(p.getInputValues(item));
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1064 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1065 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1066
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1067 /**
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1068 * Validates and stores value entered in the distance mode.
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1069 *
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1070 * @param p
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1071 * The DoubleRangePanel.
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1072 * @param item
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1073 * The item that needs to be validated.
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1074 */
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1075 protected void saveDistanceValue(final DoubleRangePanel p, final FormItem item) {
59
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1076 if (p.validateForm(item)) {
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1077 setFrom(p.getFrom());
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1078 setTo(p.getTo());
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1079 setStep(p.getStep());
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1080 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1081 }
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1082
a3d235c63195 Save the data explicitly in the LocationDistancePanel and WQInputPanel before returning the user input to avoid a nullpointer exception.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 58
diff changeset
1083 /**
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1084 * This method creates the panel that contains the checkboxes to switch
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1085 * between the input mode 'location' and 'distance'.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1086 *
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1087 * @return the checkbox panel.
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1088 */
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1089 protected Canvas createRadioButtonPanel() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1090 this.mode = new DynamicForm();
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1091
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1092 final RadioGroupItem radio = new RadioGroupItem(FIELD_MODE);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1093 radio.setShowTitle(false);
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1094 radio.setVertical(false);
1394
819ce433243c Issue 339.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1393
diff changeset
1095 radio.setWrap(false);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1096
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1097 final LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1098 values.put(FIELD_VALUE_LOCATION, this.MESSAGES.location());
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1099 values.put(FIELD_VALUE_DISTANCE, this.MESSAGES.distance());
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1100
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1101 final LinkedHashMap<String, String> initial = new LinkedHashMap<String, String>();
588
809756dda091 #132 Set the initial mode of the location/distance panel to 'distance'.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 582
diff changeset
1102 initial.put(FIELD_MODE, FIELD_VALUE_DISTANCE);
45
f99c5f8e4672 Some GUI improvements in the Location/Distance, W/Q and Module panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 43
diff changeset
1103
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1104 radio.setValueMap(values);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1105 radio.addChangeHandler(this);
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1106
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1107 this.mode.setFields(radio);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1108 this.mode.setValues(initial);
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1109
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1110 return this.mode;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1111 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1112
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1113 protected void createDistanceInputPanel() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1114 final Config config = Config.getInstance();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1115 final String url = config.getServerUrl();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1116 String river = "";
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1117
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1118 final ArtifactDescription adescr = this.artifact.getArtifactDescription();
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1119 final DataList[] data = adescr.getOldData();
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1120
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1121 if (data != null && data.length > 0) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1122 for (final DataList dl : data) {
3526
02d18d38fca7 Use river data in all states not only winfo in location/distance ui provider.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3379
diff changeset
1123 if (dl.getState().endsWith("river")) {
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1124 for (int j = 0; j < dl.size(); j++) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1125 final Data d = dl.get(j);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1126 final DataItem[] di = d.getItems();
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1127 if (di != null && di.length == 1) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1128 river = d.getItems()[0].getStringValue();
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1129 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1130 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1131 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1132 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1133 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1134
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1135 this.distanceTable.setDataSource(new DistanceInfoDataSource(url, river, "distances"));
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1136 this.locationsTable.setDataSource(new DistanceInfoDataSource(url, river, "locations"));
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1137 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1138
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1139 protected double getFrom() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1140 return this.from;
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1141 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1142
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1143 protected void setTo(final String to) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1144 try {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1145 final double toValue = Double.parseDouble(to);
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1146 setTo(toValue);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1147 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1148 catch (final NumberFormatException nfe) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1149 // Is there anything to do?
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1150 }
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1151 }
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1152
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1153 protected void setFrom(final String from) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1154 try {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1155 final double fromValue = Double.parseDouble(from);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1156 setFrom(fromValue);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1157 }
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1158 catch (final NumberFormatException nfe) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1159 // Is there anything to do?
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1160 }
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1161 }
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1162
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1163 protected void setFrom(final double from) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1164 this.from = from;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1165 /* The doubling should be removed and this.from abolished */
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1166 this.distancePanel.setFrom(from);
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1167 }
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1168
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1169 protected double getTo() {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1170 return this.to;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1171 }
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1172
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1173 protected void setTo(final double to) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1174 this.to = to;
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1175 /* The doubling should be removed and this.to abolished */
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1176 this.distancePanel.setTo(to);
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1177 }
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1178
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1179 protected double getStep() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1180 return this.step;
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1181 }
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1182
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1183 protected void setStep(final double step) {
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1184 this.step = step;
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1185 }
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1186
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1187 protected double[] getLocationValues() {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1188 return this.values;
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1189 }
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1190
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1191 protected void appendLocation(final String loc) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1192 double[] selected;
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1193 if (getLocationValues() != null) {
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1194 final double[] val = getLocationValues();
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1195 selected = new double[val.length + 1];
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1196 for (int i = 0; i < val.length; i++) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1197 selected[i] = val[i];
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1198 }
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1199 try {
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1200 selected[val.length] = Double.parseDouble(loc);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1201 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1202 catch (final NumberFormatException nfe) {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1203 // Is there anything to do here?
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1204 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1205 } else {
8449
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1206 selected = new double[1];
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1207 selected[0] = Double.parseDouble(loc);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1208 }
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1209 setLocationValues(selected);
f61e2791ccdf (issue1733) Fix locationdistancepanel
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8448
diff changeset
1210 }
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1211
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1212 protected void setLocationValues(final double[] values) {
43
6bcd8e3f21a7 Refactored the LocationDistancePanel, so that is uses the DoubleArrayPanel and DoubleRangePanel from the last commit as well.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
1213 this.values = values;
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1214 this.locationPanel.setValues(values);
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1215 }
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1216
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1217 protected void setLocationValues(final String values) {
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1218 final String[] vs = values.split(" ");
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1219
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1220 if (vs == null) {
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1221 return;
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1222 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1223
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1224 final double[] ds = new double[vs.length];
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1225 int idx = 0;
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1226
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1227 for (final String s : vs) {
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1228 try {
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1229 ds[idx++] = Double.valueOf(s);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1230 }
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1231 catch (final NumberFormatException nfe) {
516
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1232 // do nothing
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1233 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1234 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1235
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1236 setLocationValues(ds);
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1237 }
ba606e575663 ISSUE-85 (part II/III) Repaired broken location/range panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
1238
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1239 protected void setDistanceValues(final double from, final double to) {
235
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1240 setFrom(from);
d3f8d6966c20 Added location and distance tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 211
diff changeset
1241 setTo(to);
9175
34dc0163ad2d DistancePanel Berechnungsstrecke->Darstellungsbereich Refactoring
gernotbelger
parents: 8856
diff changeset
1242 this.distancePanel.setValues(from, to, getStep());
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1243 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1244 }
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1245 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org