Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DistancePanel.java @ 9164:8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
author | gernotbelger |
---|---|
date | Wed, 20 Jun 2018 11:13:40 +0200 |
parents | 28c50f5efceb |
children | 34dc0163ad2d |
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; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
9064 | 11 import java.util.ArrayList; |
12 import java.util.LinkedHashMap; | |
13 import java.util.List; | |
14 | |
15 import org.dive4elements.river.client.client.Config; | |
16 import org.dive4elements.river.client.client.FLYSConstants; | |
17 import org.dive4elements.river.client.client.event.FilterHandler; | |
18 import org.dive4elements.river.client.client.event.RangeFilterEvent; | |
19 import org.dive4elements.river.client.client.event.StringFilterEvent; | |
20 import org.dive4elements.river.client.client.ui.range.DistanceInfoDataSource; | |
21 import org.dive4elements.river.client.client.ui.range.LocationsTable; | |
22 import org.dive4elements.river.client.client.ui.range.RangeTable; | |
23 import org.dive4elements.river.client.shared.model.ArtifactDescription; | |
24 import org.dive4elements.river.client.shared.model.Data; | |
25 import org.dive4elements.river.client.shared.model.DataItem; | |
26 import org.dive4elements.river.client.shared.model.DataList; | |
27 import org.dive4elements.river.client.shared.model.DefaultData; | |
28 import org.dive4elements.river.client.shared.model.DefaultDataItem; | |
29 | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 import com.google.gwt.core.client.GWT; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 import com.google.gwt.i18n.client.NumberFormat; |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
32 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:
793
diff
changeset
|
33 import com.smartgwt.client.data.Criteria; |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
34 import com.smartgwt.client.data.Criterion; |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
35 import com.smartgwt.client.data.Record; |
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
36 import com.smartgwt.client.types.Alignment; |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
37 import com.smartgwt.client.types.OperatorId; |
783
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
38 import com.smartgwt.client.util.SC; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 import com.smartgwt.client.widgets.Canvas; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 import com.smartgwt.client.widgets.Label; |
1534
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
41 import com.smartgwt.client.widgets.form.DynamicForm; |
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
42 import com.smartgwt.client.widgets.form.fields.SelectItem; |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
43 import com.smartgwt.client.widgets.form.fields.StaticTextItem; |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
44 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
46 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; |
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
47 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; |
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
48 import com.smartgwt.client.widgets.grid.ListGrid; |
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
49 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; |
783
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
50 import com.smartgwt.client.widgets.grid.events.RecordClickHandler; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 import com.smartgwt.client.widgets.layout.HLayout; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 import com.smartgwt.client.widgets.layout.VLayout; |
781
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
53 import com.smartgwt.client.widgets.tab.Tab; |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
54 import com.smartgwt.client.widgets.tab.TabSet; |
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
55 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; |
893
89c01218172b
Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
863
diff
changeset
|
56 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 |
7141 | 58 /** Panel to allow input of distance for calculation range. */ |
9064 | 59 public class DistancePanel extends AbstractUIProvider implements BlurHandler, FilterHandler { |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
61 private static final long serialVersionUID = -883142387908664588L; |
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
62 |
8800
2aaf87bc3ea7
Backout revision d793caaf5b5e.
Tom Gottfried <tom@intevation.de>
parents:
8790
diff
changeset
|
63 public static final int DEFAULT_STEP_WIDTH = 100; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 |
8800
2aaf87bc3ea7
Backout revision d793caaf5b5e.
Tom Gottfried <tom@intevation.de>
parents:
8790
diff
changeset
|
65 public static final String FIELD_LOWER = "ld_from"; |
2aaf87bc3ea7
Backout revision d793caaf5b5e.
Tom Gottfried <tom@intevation.de>
parents:
8790
diff
changeset
|
66 public static final String FIELD_UPPER = "ld_to"; |
9064 | 67 public static final String FIELD_STEP = "ld_step"; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 |
9064 | 71 protected RangeTable distancesTable; |
781
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
72 protected LocationsTable locationsTable; |
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
73 |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 protected DoubleRangePanel distancePanel; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 |
1534
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
76 protected TableFilter filterDescription; |
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
77 protected RangeTableFilter filterRange; |
893
89c01218172b
Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
863
diff
changeset
|
78 |
781
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
79 protected TabSet tabs; |
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
80 |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 protected double min; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 protected double max; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
84 protected StaticTextItem filterResultCount; |
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
85 protected ListGrid currentFiltered; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 public DistancePanel() { |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
88 this("right"); |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
89 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
90 |
9064 | 91 public DistancePanel(final String labelOrientation) { |
92 this.distancePanel = new DoubleRangePanel(labelFrom(), labelTo(), labelStep(), 0d, 0d, 0d, 250, this, labelOrientation); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 @Override |
9064 | 96 public Canvas create(final DataList data) { |
97 final VLayout layout = new VLayout(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 layout.setMembersMargin(10); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 |
9164
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
100 final Label label = getLabel(data); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 |
9064 | 102 final Canvas submit = getNextButton(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 label.setHeight(25); |
9064 | 105 this.distancePanel.setHeight(50); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 layout.addMember(label); |
9064 | 108 layout.addMember(this.distancePanel); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 layout.addMember(submit); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 initMinMaxValues(data); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 initDefaultValues(data); |
781
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
113 initHelperPanel(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
114 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 return layout; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 |
9164
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
118 private Label getLabel(final DataList data) { |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
119 final Data item = data.get(0); |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
120 if (data.getState().contains("uinfo")) { // "Wahl der Berechnungsstrecke/des Darstellungsbereichs" (server) vs. "Berechnungsstrecke wählen" (client) |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
121 return new Label(item.getDescription()); // holt das Label vom Server (funktoniert schon sehr oft so!) |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
122 } |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
123 return new Label(getLabel()); // holt das Label aus den Flys-Constants.. |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
124 } |
8c0d1542c1d8
uinfo.distance_only Berechnungsstrecke -> Darstellungsbereich HACK
gernotbelger
parents:
9064
diff
changeset
|
125 |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 @Override |
9064 | 127 public Canvas createOld(final DataList dataList) { |
128 final String s = getOldSelectionString(dataList); | |
129 final String l = dataList.getLabel(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 |
9064 | 131 final Label label = new Label(l); |
132 final Label selected = new Label(s); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 |
9064 | 134 final HLayout layout = new HLayout(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
136 layout.setWidth(400); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
137 label.setWidth(200); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 selected.setWidth(130); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 layout.addMember(label); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 layout.addMember(selected); |
784
3fa64c796ffc
Added the missing 'back'-button to the DistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
783
diff
changeset
|
142 layout.addMember(getBackButton(dataList.getState())); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
143 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
144 return layout; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 |
9064 | 147 protected String getOldSelectionString(final DataList dataList) { |
148 final List<Data> items = dataList.getAll(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 |
9064 | 150 final Data dFrom = getData(items, getLowerField()); |
151 final Data dTo = getData(items, getUpperField()); | |
152 final Data dStep = getData(items, getStepField()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 |
9064 | 154 final DataItem[] from = dFrom.getItems(); |
155 final DataItem[] to = dTo.getItems(); | |
156 final DataItem[] step = dStep.getItems(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 |
9064 | 158 final StringBuilder sb = new StringBuilder(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 sb.append(from[0].getLabel()); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
160 sb.append(" " + getUnitFrom() + " - "); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 sb.append(to[0].getLabel()); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
162 sb.append(" " + getUnitTo() + " - "); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
163 sb.append(step[0].getLabel()); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
164 sb.append(" " + getUnitStep()); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
166 return sb.toString(); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
168 |
1423
204e085a9f1c
Bugfix: set correct label for 'waterlevel/ground' state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1387
diff
changeset
|
169 protected String getLabel() { |
9064 | 170 return this.MSG.distance_state(); |
1423
204e085a9f1c
Bugfix: set correct label for 'waterlevel/ground' state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1387
diff
changeset
|
171 } |
204e085a9f1c
Bugfix: set correct label for 'waterlevel/ground' state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1387
diff
changeset
|
172 |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
173 protected String labelFrom() { |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
174 return getLabelFrom() + " [" + getUnitFrom() + "]"; |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
175 } |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
176 |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
177 protected String getLabelFrom() { |
9064 | 178 return this.MSG.dpLabelFrom(); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
179 } |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
180 |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
181 protected String getUnitFrom() { |
9064 | 182 return this.MSG.dpUnitFrom(); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
183 } |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
184 |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
185 protected String labelTo() { |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
186 return getLabelTo() + " [" + getUnitTo() + "]"; |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
187 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
188 |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
189 protected String getLabelTo() { |
9064 | 190 return this.MSG.dpLabelTo(); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
191 } |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
192 |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
193 protected String getUnitTo() { |
9064 | 194 return this.MSG.dpUnitTo(); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
195 } |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
196 |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
197 protected String labelStep() { |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
198 return getLabelStep() + " [" + getUnitStep() + "]"; |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
199 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
200 |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
201 protected String getLabelStep() { |
9064 | 202 return this.MSG.dpLabelStep(); |
793
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
203 } |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
204 |
4497d19c22fd
Finished the panel to enter waterlevel/ground information (from, to, diff).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
788
diff
changeset
|
205 protected String getUnitStep() { |
9064 | 206 return this.MSG.dpUnitStep(); |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
207 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
208 |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
209 protected String getLowerField() { |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
210 return FIELD_LOWER; |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
211 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
212 |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
213 protected String getUpperField() { |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
214 return FIELD_UPPER; |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
215 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
216 |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
217 protected String getStepField() { |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
218 return FIELD_STEP; |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
219 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
220 |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
221 @Override |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
222 public List<String> validate() { |
9064 | 223 final List<String> errors = new ArrayList<String>(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
224 |
9064 | 225 if (!this.distancePanel.validateForm()) { |
226 errors.add(this.MSG.wrongFormat()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
227 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
228 return errors; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
229 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
230 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
231 validateFrom(errors); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
232 validateTo(errors); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
233 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
234 return errors; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
235 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
236 |
9064 | 237 protected void validateFrom(final List<String> errors) { |
238 final double from = this.distancePanel.getFrom(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
239 |
9064 | 240 if (from < this.min || from > this.max) { |
241 final NumberFormat nf = NumberFormat.getDecimalFormat(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
242 |
9064 | 243 String tmp = this.MSG.error_validate_lower_range(); |
244 tmp = tmp.replace("$1", nf.format(from)); | |
245 tmp = tmp.replace("$2", nf.format(this.min)); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
246 |
9064 | 247 this.distancePanel.setFrom(this.min); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
248 errors.add(tmp); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
249 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
250 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
251 |
9064 | 252 protected void validateTo(final List<String> errors) { |
253 final double to = this.distancePanel.getTo(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
254 |
9064 | 255 if (to < this.min || to > this.max) { |
256 final NumberFormat nf = NumberFormat.getDecimalFormat(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
257 |
9064 | 258 String tmp = this.MSG.error_validate_upper_range(); |
259 tmp = tmp.replace("$1", nf.format(to)); | |
260 tmp = tmp.replace("$2", nf.format(this.max)); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
261 |
9064 | 262 this.distancePanel.setTo(this.max); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
263 errors.add(tmp); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
264 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
265 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
266 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
267 @Override |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
268 public Data[] getData() { |
9064 | 269 final Data[] data = new Data[4]; |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
270 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
271 data[0] = getDataFrom(); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
272 data[1] = getDataTo(); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
273 data[2] = getDataStep(); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
274 |
9064 | 275 final DataItem item = new DefaultDataItem("ld_mode", "ld_mode", "distance"); |
276 data[3] = new DefaultData("ld_mode", null, null, new DataItem[] { item }); | |
1387
3cbc7fbfff0e
Set attribute 'ld_mode' in appropiate UIProviders.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1265
diff
changeset
|
277 |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
278 return data; |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
279 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
280 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
281 protected Data getDataFrom() { |
9064 | 282 final String value = String.valueOf(this.distancePanel.getFrom()); |
283 final String field = getLowerField(); | |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
284 |
9064 | 285 final DataItem item = new DefaultDataItem(field, field, value); |
286 return new DefaultData(field, null, null, new DataItem[] { item }); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
287 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
288 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
289 protected Data getDataTo() { |
9064 | 290 final String value = String.valueOf(this.distancePanel.getTo()); |
291 final String field = getUpperField(); | |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
292 |
9064 | 293 final DataItem item = new DefaultDataItem(field, field, value); |
294 return new DefaultData(field, null, null, new DataItem[] { item }); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
295 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
296 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
297 protected Data getDataStep() { |
9064 | 298 final String value = String.valueOf(this.distancePanel.getStep()); |
299 final String field = getStepField(); | |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
300 |
9064 | 301 final DataItem item = new DefaultDataItem(field, field, value); |
302 return new DefaultData(field, null, null, new DataItem[] { item }); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
303 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
304 |
9064 | 305 @Override |
306 public void onBlur(final BlurEvent event) { | |
307 this.distancePanel.validateForm(); | |
308 } | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
309 |
9064 | 310 protected void initMinMaxValues(final DataList data) { |
311 final Data f = getData(data.getAll(), getLowerField()); | |
312 final Data t = getData(data.getAll(), getUpperField()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
313 |
9064 | 314 final DataItem[] fItems = f.getItems(); |
315 final DataItem[] tItems = t.getItems(); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
316 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
317 try { |
9064 | 318 this.min = Double.valueOf(fItems[0].getStringValue()); |
319 this.max = Double.valueOf(tItems[0].getStringValue()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
320 } |
9064 | 321 catch (final NumberFormatException nfe) { |
322 this.min = -Double.MAX_VALUE; | |
323 this.max = Double.MAX_VALUE; | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
324 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
325 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
326 |
9064 | 327 protected void initDefaultValues(final DataList data) { |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
328 initDefaultFrom(data); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
329 initDefaultTo(data); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
330 initDefaultStep(data); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
331 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
332 |
9064 | 333 protected void initDefaultFrom(final DataList data) { |
334 final Data f = getData(data.getAll(), getLowerField()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
335 |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
336 double from = getDefaultFrom(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
337 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
338 try { |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
339 from = getDefaultValue(f); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
340 } |
9064 | 341 catch (final NumberFormatException nfe) { |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
342 // do nothing |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
343 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
344 |
9064 | 345 this.distancePanel.setFrom(from); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
346 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
347 |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
348 protected double getDefaultFrom() { |
9064 | 349 return this.min; |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
350 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
351 |
9064 | 352 protected void initDefaultTo(final DataList data) { |
353 final Data t = getData(data.getAll(), getUpperField()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
354 |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
355 double to = getDefaultTo(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
356 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
357 try { |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
358 to = getDefaultValue(t); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
359 } |
9064 | 360 catch (final NumberFormatException nfe) { |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
361 // do nothing |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
362 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
363 |
9064 | 364 this.distancePanel.setTo(to); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
365 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
366 |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
367 protected double getDefaultTo() { |
9064 | 368 return this.max; |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
369 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
370 |
9064 | 371 protected void initDefaultStep(final DataList data) { |
372 final Data s = getData(data.getAll(), getStepField()); | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
373 |
8800
2aaf87bc3ea7
Backout revision d793caaf5b5e.
Tom Gottfried <tom@intevation.de>
parents:
8790
diff
changeset
|
374 double step = getDefaultStep(); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
375 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
376 try { |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
377 step = getDefaultValue(s); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
378 } |
9064 | 379 catch (final NumberFormatException nfe) { |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
380 // do nothing |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
381 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
382 |
9064 | 383 this.distancePanel.setStep(step); |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
384 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
385 |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
386 protected double getDefaultStep() { |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
387 return DEFAULT_STEP_WIDTH; |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
388 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
784
diff
changeset
|
389 |
7745
1d6b957d8953
issue1549: Add live-validation to wsplgen to-field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7731
diff
changeset
|
390 /** Gets the double from default in data, null if none. */ |
9064 | 391 protected double getDefaultValue(final Data data) throws NumberFormatException { |
392 final DataItem def = data.getDefault(); | |
393 final String defValue = def != null ? def.getStringValue() : null; | |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
394 |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
395 return Double.valueOf(defValue); |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
396 } |
781
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
397 |
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
398 protected void initHelperPanel() { |
9064 | 399 this.distancesTable = new RangeTable(); |
400 this.locationsTable = new LocationsTable(); | |
782
4a7ece57f44c
#159 The tables in the WQ panel for calculation 4 are now filled with data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
781
diff
changeset
|
401 |
9064 | 402 final Config config = Config.getInstance(); |
403 final String url = config.getServerUrl(); | |
404 final String river = getRiverName(); | |
782
4a7ece57f44c
#159 The tables in the WQ panel for calculation 4 are now filled with data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
781
diff
changeset
|
405 |
9064 | 406 this.distancesTable.setAutoFetchData(true); |
407 this.locationsTable.setAutoFetchData(true); | |
408 this.distancesTable.setDataSource(new DistanceInfoDataSource(url, river, "distances")); | |
409 this.locationsTable.setDataSource(new DistanceInfoDataSource(url, river, "locations")); | |
410 | |
411 this.distancesTable.addRecordClickHandler(new RecordClickHandler() { | |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
412 @Override |
9064 | 413 public void onRecordClick(final RecordClickEvent e) { |
414 final Record r = e.getRecord(); | |
783
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
415 |
9064 | 416 final String from = r.getAttribute("from"); |
417 final String to = r.getAttribute("to"); | |
783
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
418 |
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
419 try { |
9064 | 420 DistancePanel.this.distancePanel.setFrom(Double.valueOf(from)); |
421 DistancePanel.this.distancePanel.setTo(Double.valueOf(to)); | |
783
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
422 } |
9064 | 423 catch (final NumberFormatException nfe) { |
424 SC.warn(DistancePanel.this.MSG.wrongFormat()); | |
783
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
425 } |
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
426 } |
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
427 }); |
8ebaad41285b
#159 Added listeners to the locations and distances tables of the kilometer range panel to set the from/to fields.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
782
diff
changeset
|
428 |
9064 | 429 this.locationsTable.addRecordClickHandler(new RecordClickHandler() { |
430 @Override | |
431 public void onRecordClick(final RecordClickEvent e) { | |
432 final Record r = e.getRecord(); | |
433 final int field = e.getFieldNum(); | |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
434 |
9064 | 435 try { |
436 final String value = r.getAttribute("from"); | |
1534
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
437 |
9064 | 438 switch (field) { |
439 case 0: | |
440 DistancePanel.this.distancePanel.setFrom(Double.valueOf(value)); | |
441 break; | |
442 case 1: | |
443 DistancePanel.this.distancePanel.setTo(Double.valueOf(value)); | |
444 break; | |
445 } | |
1534
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
446 } |
9064 | 447 catch (final NumberFormatException nfe) { |
448 SC.warn(DistancePanel.this.MSG.wrongFormat()); | |
1534
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
449 } |
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
450 } |
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
451 }); |
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
452 |
9064 | 453 this.tabs = new TabSet(); |
454 this.tabs.setWidth100(); | |
455 this.tabs.setHeight100(); | |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
456 |
9064 | 457 final Tab locations = new Tab(this.MSG.locations()); |
458 final Tab distances = new Tab(this.MSG.distance()); | |
459 | |
460 locations.setPane(this.locationsTable); | |
461 distances.setPane(this.distancesTable); | |
462 | |
463 this.tabs.addTab(locations, 0); | |
464 this.tabs.addTab(distances, 1); | |
465 | |
466 this.filterResultCount = new StaticTextItem(this.MSG.resultCount()); | |
467 this.filterResultCount.setTitleAlign(Alignment.LEFT); | |
468 this.filterResultCount.setTitleStyle("color: #000"); | |
469 | |
470 this.filterDescription = new TableFilter(); | |
471 this.filterDescription.setHeight("30px"); | |
472 this.filterDescription.addFilterHandler(this); | |
473 | |
474 this.filterRange = new RangeTableFilter(); | |
475 this.filterRange.setHeight("30px"); | |
476 this.filterRange.addFilterHandler(this); | |
477 this.filterRange.setVisible(false); | |
478 | |
479 final SelectItem filterCriteria = new SelectItem(); | |
480 filterCriteria.setShowTitle(false); | |
481 filterCriteria.setWidth(100); | |
482 filterCriteria.addChangedHandler(new ChangedHandler() { | |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
483 @Override |
9064 | 484 public void onChanged(final ChangedEvent e) { |
485 if (e.getValue().toString().equals("range")) { | |
486 DistancePanel.this.filterRange.setVisible(true); | |
487 DistancePanel.this.filterDescription.setVisible(false); | |
488 DistancePanel.this.filterDescription.clear(); | |
489 } else { | |
490 DistancePanel.this.filterRange.setVisible(false); | |
491 DistancePanel.this.filterRange.clear(); | |
492 DistancePanel.this.filterDescription.setVisible(true); | |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
493 } |
893
89c01218172b
Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
863
diff
changeset
|
494 } |
89c01218172b
Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
863
diff
changeset
|
495 }); |
89c01218172b
Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
863
diff
changeset
|
496 |
9064 | 497 final LinkedHashMap<String, String> filterMap = new LinkedHashMap<String, String>(); |
498 filterMap.put("description", this.MSG.description()); | |
499 filterMap.put("range", this.MSG.range()); | |
500 filterCriteria.setValueMap(filterMap); | |
501 filterCriteria.setValue("description"); | |
502 | |
503 final DynamicForm form = new DynamicForm(); | |
504 form.setFields(filterCriteria); | |
505 | |
506 final DynamicForm form2 = new DynamicForm(); | |
507 form2.setFields(this.filterResultCount); | |
508 | |
509 final HLayout filterLayout = new HLayout(); | |
510 filterLayout.addMember(form); | |
511 filterLayout.addMember(this.filterDescription); | |
512 filterLayout.addMember(this.filterRange); | |
513 filterLayout.setHeight(30); | |
514 this.tabs.addTabSelectedHandler(new TabSelectedHandler() { | |
515 @Override | |
516 public void onTabSelected(final TabSelectedEvent evt) { | |
517 DistancePanel.this.filterDescription.clear(); | |
518 DistancePanel.this.filterRange.clear(); | |
519 DistancePanel.this.filterResultCount.setValue(""); | |
520 | |
521 final Canvas c = evt.getTabPane(); | |
522 if (c instanceof ListGrid) { | |
523 DistancePanel.this.currentFiltered = (ListGrid) c; | |
524 } | |
525 } | |
526 }); | |
527 | |
528 this.helperContainer.addMember(this.tabs); | |
529 this.helperContainer.addMember(filterLayout); | |
530 this.helperContainer.addMember(form2); | |
863
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
793
diff
changeset
|
531 } |
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
793
diff
changeset
|
532 |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
533 @Override |
9064 | 534 public void onFilterCriteriaChanged(final StringFilterEvent event) { |
535 final String search = event.getFilter(); | |
863
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
793
diff
changeset
|
536 |
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
793
diff
changeset
|
537 if (search != null && search.length() > 0) { |
9064 | 538 final Criteria c = new Criteria("description", search); |
539 this.locationsTable.filterData(c); | |
540 this.distancesTable.filterData(c); | |
541 this.filterResultCount.setValue(this.currentFiltered.getRecords().length); | |
542 } else { | |
543 this.locationsTable.clearCriteria(); | |
544 this.distancesTable.clearCriteria(); | |
545 this.filterResultCount.setValue(""); | |
863
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
793
diff
changeset
|
546 } |
781
6653cf54b45d
The distance panel got two tables for locations and ranges. Both do not load any data until now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
780
diff
changeset
|
547 } |
782
4a7ece57f44c
#159 The tables in the WQ panel for calculation 4 are now filled with data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
781
diff
changeset
|
548 |
4131
360e22afb98b
Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents:
2520
diff
changeset
|
549 @Override |
9064 | 550 public void onFilterCriteriaChanged(final RangeFilterEvent event) { |
551 final Float from = event.getFrom() - 0.001f; | |
552 final Float to = event.getTo() + 0.001f; | |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
553 |
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
554 Criterion combinedFilter = null; |
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
555 Criterion locationFilter = null; |
7731
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
556 |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
557 if (from.equals(Float.NaN) && to.equals(Float.NaN)) { |
9064 | 558 this.locationsTable.clearCriteria(); |
559 this.distancesTable.clearCriteria(); | |
560 this.filterResultCount.setValue(""); | |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
561 return; |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
562 } |
7731
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
563 |
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
564 if (from.equals(Float.NaN)) { |
9064 | 565 combinedFilter = new Criterion("to", OperatorId.LESS_OR_EQUAL, to); |
7731
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
566 |
9064 | 567 locationFilter = new Criterion("from", OperatorId.LESS_OR_EQUAL, to); |
7731
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
568 |
9064 | 569 this.locationsTable.filterData(locationFilter); |
570 this.distancesTable.filterData(combinedFilter); | |
571 this.filterResultCount.setValue(this.currentFiltered.getRecords().length); | |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
572 return; |
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
573 } |
7731
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
574 |
91a57b66c7ed
Client side fix for flys/issue1549
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7141
diff
changeset
|
575 if (to.equals(Float.NaN)) { |
9064 | 576 combinedFilter = new Criterion("from", OperatorId.GREATER_OR_EQUAL, from); |
577 } else { | |
578 final AdvancedCriteria c1 = new AdvancedCriteria(OperatorId.AND, | |
579 new Criterion[] { new Criterion("from", OperatorId.GREATER_OR_EQUAL, from), new Criterion("from", OperatorId.LESS_OR_EQUAL, to) }); | |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
580 |
9064 | 581 final AdvancedCriteria c2 = new AdvancedCriteria(OperatorId.AND, |
582 new Criterion[] { new Criterion("to", OperatorId.GREATER_OR_EQUAL, from), new Criterion("to", OperatorId.LESS_OR_EQUAL, to) }); | |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
583 |
9064 | 584 final AdvancedCriteria c3 = new AdvancedCriteria(OperatorId.AND, |
585 new Criterion[] { new Criterion("from", OperatorId.LESS_OR_EQUAL, to), new Criterion("to", OperatorId.GREATER_OR_EQUAL, from) }); | |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
586 |
9064 | 587 combinedFilter = new AdvancedCriteria(OperatorId.OR, new Criterion[] { c1, c2, c3 }); |
1538
92f81eac034a
Added filter implementation for input helper tables in single location and
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1534
diff
changeset
|
588 } |
9064 | 589 this.locationsTable.filterData(combinedFilter); |
590 this.distancesTable.filterData(combinedFilter); | |
591 this.filterResultCount.setValue(this.currentFiltered.getRecords().length); | |
1567
7e738bc8ed75
Show hit count in filtered input helper tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1538
diff
changeset
|
592 |
1534
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
593 } |
98123d34529b
Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1423
diff
changeset
|
594 |
782
4a7ece57f44c
#159 The tables in the WQ panel for calculation 4 are now filled with data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
781
diff
changeset
|
595 protected String getRiverName() { |
9064 | 596 final ArtifactDescription adescr = this.artifact.getArtifactDescription(); |
2520
fe67f1345687
Added a MINFOArtifact and improved the DistancePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1567
diff
changeset
|
597 return adescr.getRiver(); |
782
4a7ece57f44c
#159 The tables in the WQ panel for calculation 4 are now filled with data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
781
diff
changeset
|
598 } |
780
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
599 } |
a39c2f531755
Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
600 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |