annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java @ 1495:bd6c8b06cb94

Improved the StyledEditorWindow to support a list of pointsizes. flys-client/trunk@3588 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 04 Jan 2012 16:05:39 +0000
parents 047a44270348
children 4a5e65551923
rev   line source
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
3 import java.util.ArrayList;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.List;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 import com.google.gwt.core.client.GWT;
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
7 import com.google.gwt.i18n.client.NumberFormat;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
9 import com.smartgwt.client.util.SC;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.Canvas;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.Label;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.form.fields.FormItem;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.layout.HLayout;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.layout.VLayout;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.grid.ListGrid;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 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
19 import com.smartgwt.client.widgets.grid.ListGridRecord;
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
20
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
906
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
23 import com.smartgwt.client.widgets.grid.CellFormatter;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
25 import com.smartgwt.client.data.Criteria;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
26 import com.smartgwt.client.data.Record;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 import com.smartgwt.client.types.ListGridFieldType;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 import de.intevation.flys.client.shared.model.Data;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import de.intevation.flys.client.shared.model.DataItem;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 import de.intevation.flys.client.shared.model.DataList;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 import de.intevation.flys.client.shared.model.DefaultData;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 import de.intevation.flys.client.shared.model.DefaultDataItem;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 import de.intevation.flys.client.shared.model.DistanceInfoObject;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 import de.intevation.flys.client.shared.model.ArtifactDescription;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 import de.intevation.flys.client.client.services.DistanceInfoService;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 import de.intevation.flys.client.client.services.DistanceInfoServiceAsync;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 import de.intevation.flys.client.client.FLYSConstants;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 import de.intevation.flys.client.client.Config;
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
41 import de.intevation.flys.client.client.ui.range.DistanceInfoDataSource;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
42 import de.intevation.flys.client.client.event.FilterHandler;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
43 import de.intevation.flys.client.client.event.StringFilterEvent;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 * This UIProvider creates a widget to enter locations.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 public class SingleLocationPanel
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 extends AbstractUIProvider
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
53 implements FilterHandler
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 /** The message class that provides i18n strings.*/
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 /** The DistanceInfoService used to retrieve locations about rivers.*/
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 protected DistanceInfoServiceAsync distanceInfoService =
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 GWT.create(DistanceInfoService.class);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 /** A container that will contain the location or the distance panel.*/
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 protected HLayout container;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
65 /** The minimal value that the user is allowed to enter.*/
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
66 protected double min;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
67
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
68 /** The maximal value that the user is allowed to enter.*/
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
69 protected double max;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
70
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 /** The values entered in the location mode.*/
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 protected double[] values;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 /** The input panel for locations */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 protected DoubleArrayPanel locationPanel;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 /** The locations table */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 protected ListGrid locationTable;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 /** The table data. */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 protected DistanceInfoObject[] tableData;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 * Creates a new LocationDistancePanel instance.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 public SingleLocationPanel() {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 locationTable = new ListGrid();
284
be842e36ce1c ISSUE 46: Removed the table header context menu.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 276
diff changeset
88 locationTable.setShowHeaderContextMenu(false);
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 * This method creates a widget that contains a label, a panel with
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 * checkboxes to switch the input mode between location and distance input,
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 * and a the mode specific panel.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 * @param data The data that might be inserted.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 * @return a panel.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 public Canvas create(DataList data) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 VLayout layout = new VLayout();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 layout.setMembersMargin(10);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 Label label = new Label(MESSAGES.location ());
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 Canvas widget = createWidget(data);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 Canvas submit = getNextButton();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
109 initDefaults(data);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
110
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 createLocationTable();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 widget.setHeight(50);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 label.setHeight(25);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 layout.addMember(label);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 layout.addMember(widget);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 layout.addMember(submit);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 return layout;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 * This method creates a table that contains the location values.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 protected void createLocationTable() {
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
128 GWT.log("---------- I WAS HERE ---------");
1399
748e7c828d03 Issue312.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1387
diff changeset
129
748e7c828d03 Issue312.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1387
diff changeset
130 String baseUrl = GWT.getHostPageBaseURL();
748e7c828d03 Issue312.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1387
diff changeset
131
272
d3c053420c3b ISSUE 44: Moved the location/range and WQ input tables to the helper panel and
Raimund Renkert <raimund.renkert@intevation.de>
parents: 268
diff changeset
132 locationTable.setWidth100();
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 locationTable.setShowRecordComponents(true);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 locationTable.setShowRecordComponentsByCell(true);
272
d3c053420c3b ISSUE 44: Moved the location/range and WQ input tables to the helper panel and
Raimund Renkert <raimund.renkert@intevation.de>
parents: 268
diff changeset
135 locationTable.setHeight100();
876
dbaef661d0e5 Changed i18n string for empty table and set header fields to fixed order.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
136 locationTable.setEmptyMessage(MESSAGES.empty_filter());
dbaef661d0e5 Changed i18n string for empty table and set header fields to fixed order.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
137 locationTable.setCanReorderFields(false);
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 ListGridField addLocation = new ListGridField ("", "");
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 addLocation.setType (ListGridFieldType.ICON);
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
141 addLocation.setWidth (20);
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 addLocation.addRecordClickHandler (new RecordClickHandler () {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 public void onRecordClick (RecordClickEvent e) {
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
144 Record record = e.getRecord();
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 double[] selected = new double[1];
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
146 try {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
147 selected[0] =
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
148 Double.parseDouble(record.getAttribute("from"));
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
149 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
150 catch(NumberFormatException nfe) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
151 // Is there anything else to do here?
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
152 }
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 setLocationValues(selected);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 });
1399
748e7c828d03 Issue312.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1387
diff changeset
156 addLocation.setCellIcon (baseUrl + MESSAGES.markerGreen());
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 ListGridField ldescr = new ListGridField("description",
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 MESSAGES.description());
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 ldescr.setType(ListGridFieldType.TEXT);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 ldescr.setWidth("*");
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 ListGridField lside = new ListGridField("riverside",
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 MESSAGES.riverside());
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 lside.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
165 lside.setWidth("10%");
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
166
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 ListGridField loc = new ListGridField("from", MESSAGES.location());
906
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
168 loc.setCellFormatter(new CellFormatter() {
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
169 public String format(
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
170 Object value,
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
171 ListGridRecord record,
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
172 int rowNum, int colNum) {
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
173 if (value == null) return null;
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
174 try {
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
175 NumberFormat nf;
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
176 double v = Double.parseDouble((String)value);
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
177 nf = NumberFormat.getFormat("###0.00##");
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
178 return nf.format(v);
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
179 }
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
180 catch (Exception e) {
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
181 return value.toString();
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
182 }
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
183 }
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
184 }
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
185 );
903
dd702348b878 Changed columns to the correct type for most tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 886
diff changeset
186 loc.setType(ListGridFieldType.FLOAT);
906
39acba4b5f0b Added formatter for numeric columns that converts the decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 903
diff changeset
187
886
2161d3acc83f Changed field size from fixed to percental value in helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 876
diff changeset
188 loc.setWidth("10%");
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
189
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
190 ListGridField bottom =
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
191 new ListGridField("bottom", MESSAGES.bottom_edge());
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
192 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
193 bottom.setWidth("10%");
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
194
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
195 ListGridField top =
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
196 new ListGridField("top", MESSAGES.top_edge());
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
197 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
198 top.setWidth("10%");
568
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
199
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
200 locationTable.setFields(
1d20533a4ae3 Bring Oberkante and Unterkante into UI.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 563
diff changeset
201 addLocation, ldescr, loc, lside, bottom, top);
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 public Canvas createOld(DataList dataList) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 List<Data> items = dataList.getAll();
242
f9ca49e59fb6 Fixed the single location input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 238
diff changeset
207 Data dLocation = getData(items, "ld_locations");
f9ca49e59fb6 Fixed the single location input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 238
diff changeset
208 DataItem[] loc = dLocation.getItems();
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
209
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210 HLayout layout = new HLayout();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 layout.setWidth("400px");
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 Label label = new Label(dataList.getLabel());
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 label.setWidth("200px");
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 Canvas back = getBackButton(dataList.getState());
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217
242
f9ca49e59fb6 Fixed the single location input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 238
diff changeset
218 Label selected = new Label(loc[0].getLabel());
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 selected.setWidth("130px");
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
221 layout.addMember(label);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222 layout.addMember(selected);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
223 layout.addMember(back);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 return layout;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 * This method reads the default values defined in the DataItems of the Data
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231 * objects in <i>list</i>.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 * @param list The DataList container that stores the Data objects.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 protected void initDefaults(DataList list) {
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
236 Data data = list.get(0);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
237
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
238 if (data == null) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
239 return;
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
240 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
241
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
242 DataItem[] items = data.getItems();
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
243 DataItem iMin = getDataItem(items, "min");
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
244 DataItem iMax = getDataItem(items, "max");
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
245
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
246 try {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
247 min = Double.parseDouble(iMin.getStringValue());
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
248 max = Double.parseDouble(iMax.getStringValue());
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
249 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
250 catch (NumberFormatException nfe) {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
251 SC.warn(MESSAGES.error_read_minmax_values());
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
252 min = -Double.MAX_VALUE;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
253 max = Double.MAX_VALUE;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
254 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
255
519
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
256 DataItem def = data.getDefault();
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
257 String value = def.getStringValue();
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
258
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
259 try {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
260 double d = Double.parseDouble(value);
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
261 setLocationValues(new double[] { d } );
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
262 }
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
263 catch (NumberFormatException nfe) {
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
264 // could not parse, dont know what to do else
77234b1d009c ISSUE-90 & ISSUE-40 (part II/II) Former selected values are preselected after back jumps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 284
diff changeset
265 }
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
267
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
268
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
269 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 * This method greps the Data with name <i>name</i> from the list and
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
271 * returns it.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 * @param items A list of Data.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
274 * @param name The name of the Data that we are searching for.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 * @return the Data with the name <i>name</i>.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 protected Data getData(List<Data> data, String name) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 for (Data d: data) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280 if (name.equals(d.getLabel())) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 return d;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285 return null;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
289 protected Canvas createWidget(DataList data) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
290 VLayout layout = new VLayout();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
291 container = new HLayout();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
292
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
293 // the initial view will display the location input mode
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
294 locationPanel = new DoubleArrayPanel(
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
295 MESSAGES.unitLocation(),
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
296 getLocationValues(),
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
297 new BlurHandler(){public void onBlur(BlurEvent be) {}});
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
298
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
299 locationTable.setAutoFetchData(true);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
300
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
301 container.addMember(locationPanel);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
302
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
303 layout.addMember(container);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
304
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
305 container.setMembersMargin(30);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
306
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
307 TableFilter filter = new TableFilter();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
308 filter.setHeight("30px");
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
309 filter.addFilterHandler(this);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
310
788
dfbc6693247e Integrated a stacked panel on the right side of the ParameterList that enables users to see calculation results and the helper panel at the same time.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 568
diff changeset
311 helperContainer.addMember(locationTable);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
312 helperContainer.addMember(filter);
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
313 createInputPanel();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
314 return layout;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
315 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
316
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
317 public void onFilterCriteriaChanged(StringFilterEvent event) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
318 String search = event.getFilter();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
319
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
320 if (search != null && search.length() > 0) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
321 Criteria c = new Criteria("description", search);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
322 locationTable.filterData(c);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
323 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
324 else {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
325 // TODO Remove filter
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
326 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
327 }
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
328
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
329 @Override
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
330 public List<String> validate() {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
331 List<String> errors = new ArrayList<String>();
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
332 NumberFormat nf = NumberFormat.getDecimalFormat();
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
333
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
334 saveLocationValues(locationPanel);
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
335
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
336 if (!locationPanel.validateForm()) {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
337 errors.add(MESSAGES.wrongFormat());
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
338 return errors;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
339 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
340
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
341 double[] values = getLocationValues();
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
342 double[] good = new double[values.length];
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
343 int idx = 0;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
344
907
24d15c2e0da3 Validate than the input field for single locations contains a single value.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 906
diff changeset
345 if (values.length > 1) {
24d15c2e0da3 Validate than the input field for single locations contains a single value.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 906
diff changeset
346 errors.add(MESSAGES.too_many_values());
24d15c2e0da3 Validate than the input field for single locations contains a single value.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 906
diff changeset
347 }
24d15c2e0da3 Validate than the input field for single locations contains a single value.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 906
diff changeset
348
563
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
349 for (double value: values) {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
350 if (value < min || value > max) {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
351 String tmp = MESSAGES.error_validate_range();
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
352 tmp = tmp.replace("$1", nf.format(value));
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
353 tmp = tmp.replace("$2", nf.format(min));
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
354 tmp = tmp.replace("$3", nf.format(max));
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
355 errors.add(tmp);
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
356 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
357 else {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
358 good[idx++] = value;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
359 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
360 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
361
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
362 double[] justGood = new double[idx];
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
363 for (int i = 0; i < justGood.length; i++) {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
364 justGood[i] = good[i];
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
365 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
366
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
367 if (!errors.isEmpty()) {
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
368 locationPanel.setValues(justGood);
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
369 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
370
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
371 return errors;
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
372 }
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
373
469528551b78 Introduced an input validation for the location panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 522
diff changeset
374
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
375 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
376 * This method returns the selected data.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
377 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
378 * @return the selected/inserted data.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
379 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
380 public Data[] getData() {
242
f9ca49e59fb6 Fixed the single location input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 238
diff changeset
381 saveLocationValues(locationPanel);
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
382 double[] values = getLocationValues();
1387
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
383 Data[] data = new Data[values.length+1];
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
384 DataItem item = new DefaultDataItem();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
385 for (int i = 0; i < values.length; i++) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
386 item = new DefaultDataItem(
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
387 "ld_locations",
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
388 "ld_locations",
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
389 Double.valueOf(values[i]).toString());
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
390 data[i] = new DefaultData(
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
391 "ld_locations",
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
392 null,
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
393 null,
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
394 new DataItem[] {item});
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
395 }
1387
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
396 data[values.length] = new DefaultData(
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
397 "ld_mode",
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
398 null, null,
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
399 new DataItem[] {
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
400 new DefaultDataItem("ld_mode", "ld_mode", "locations") });
3cbc7fbfff0e Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 907
diff changeset
401
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
402 return data;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
403 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
404
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
405
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
406
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
407
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
408 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
409 * Validates and stores all values entered in the location mode.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
410 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
411 * @param p The DoubleArrayPanel.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
412 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
413 protected void saveLocationValues(DoubleArrayPanel p) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
414 FormItem[] formItems = p.getFields();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
415
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
416 for (FormItem item: formItems) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
417 if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
418 saveLocationValue(p, item);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
419 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
420 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
421 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
422
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
423
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
424 /**
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
425 * Validates and stores a value entered in the location mode.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
426 *
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
427 * @param p The DoubleArrayPanel.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
428 * @param item The item that needs to be validated.
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
429 */
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
430 protected void saveLocationValue(DoubleArrayPanel p, FormItem item) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
431 if (p.validateForm(item)) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
432 setLocationValues(p.getInputValues(item));
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
433 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
434 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
435
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
436
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
437 protected void createInputPanel() {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
438 Config config = Config.getInstance();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
439 String url = config.getServerUrl();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
440 String locale = config.getLocale ();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
441 String river = "";
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
442
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
443 ArtifactDescription adescr = artifact.getArtifactDescription();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
444 DataList[] data = adescr.getOldData();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
445
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
446 if (data != null && data.length > 0) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
447 for (int i = 0; i < data.length; i++) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
448 DataList dl = data[i];
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
449 if (dl.getState().equals("state.winfo.river")) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
450 for (int j = 0; j < dl.size(); j++) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
451 Data d = dl.get(j);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
452 DataItem[] di = d.getItems();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
453 if (di != null && di.length == 1) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
454 river = d.getItems()[0].getStringValue();
276
f4c8ce11df33 UI stub for data cage
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 272
diff changeset
455 break;
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
456 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
457 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
458 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
459 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
460 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
461
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
462 locationTable.setDataSource(new DistanceInfoDataSource(
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 788
diff changeset
463 url, river, "locations"));
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
464 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
465
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
466
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
467 protected double[] getLocationValues() {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
468 return values;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
469 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
470
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
471
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
472 protected void setLocationValues(double[] values) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
473 this.values = values;
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
474 locationPanel.setValues(values);
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
475 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
476 }
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
477 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org