annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTablePanel.java @ 9310:819dbd073624

vegZone no-overlap warning
author gernotbelger
date Thu, 26 Jul 2018 11:08:11 +0200
parents 517b93254995
children 8b7bf26b8782
rev   line source
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
3 *
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
7 */
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
8
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.client.client.ui.uinfo;
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
10
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
11 import java.util.List;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
12
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
13 import org.dive4elements.river.client.client.ui.DatacageWidget;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
14 import org.dive4elements.river.client.client.ui.DatacageWidgetData;
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
15 import org.dive4elements.river.client.shared.model.ArtifactDescription;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.client.shared.model.DataList;
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
17 import org.dive4elements.river.client.shared.model.User;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
18
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
19 import com.smartgwt.client.util.SC;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
20 import com.smartgwt.client.widgets.Button;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
21 import com.smartgwt.client.widgets.Canvas;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
22 import com.smartgwt.client.widgets.events.ClickEvent;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
23 import com.smartgwt.client.widgets.events.ClickHandler;
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
24 import com.smartgwt.client.widgets.layout.Layout;
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
25 import com.smartgwt.client.widgets.layout.VLayout;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
26 import com.smartgwt.client.widgets.tree.TreeNode;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
27
9070
611a523fc42f VegetationZoneAccessHelper, VegetationTablePanels verbessert
gernotbelger
parents: 9069
diff changeset
28 public class VegetationzonesTablePanel extends AbstractVegZonesTablePanel {
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
29
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
30 private static final long serialVersionUID = 1L;
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
31
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
32 private final static Double DELTA = 0.0000001;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
33
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
34 private final User user;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
35
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
36 // private double lowerKm = 0.0;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
37 // private double upperKm = 0.0;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
38 // private final Double vegZoneFrom = null;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
39 // private final Double vegZoneTo = null;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
40 // private final Label kmOverlapLabel = new Label();
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
41
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
42 // TODO: in der LV steht, dass eine Warnung herausgegeben werden soll, wenn der kmBereich der ausgewählten
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
43 // Vegetationszone NICHT überlappt.
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
44 // Derzeit werden durch den XPathQuery (siehe meta-data.xml usw) solche Vegetationszonen ohnehin gefiltert (nicht
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
45 // angezeigt) - so wie es bisher überall standard ist, sodass
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
46 // die Warnfunktion obsolet ist. Sollte der AG auf die LV bestehen, müsste der Query angepasst werden und hier alles
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
47 // wieder einkommentiert werden
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
48
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
49 public VegetationzonesTablePanel(final User user) {
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
50 super();
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
51 this.user = user;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
52 }
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
53
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
54 @Override
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
55 public void createWidget(final Layout root, final DataList data) {
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9107
diff changeset
56 createTable(root, data, "420", false);
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
57 // this.kmOverlapLabel.getElement().getStyle().setColor("red");
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
58 // root.addMember(this.kmOverlapLabel);
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
59 }
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
60
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
61 @Override
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
62 protected Canvas createHelper(final DataList dataList) {
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
63
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
64 final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.user, "uinfo.inundation_duration.vegZoneSelect", "load-system:true", false);
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
65
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
66 final DatacageWidget datacage = new DatacageWidget(data);
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
67 final ArtifactDescription artifact = this.artifact.getArtifactDescription();
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
68
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
69 // for (final DataList item : artifact.getOldData()) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
70 // if (item.getState().equals("state.uinfo.inundationduration.distance_only")) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
71 // for (final Data fromTo : item.getAll()) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
72 // if (fromTo.getLabel().equals("ld_from")) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
73 // this.lowerKm = Double.valueOf(fromTo.getStringValue());
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
74 // } else if (fromTo.getLabel().equals("ld_to")) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
75 // this.upperKm = Double.valueOf(fromTo.getStringValue());
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
76 // }
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
77 //
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
78 // }
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
79 // }
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
80 // }
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
81 // final double lowerKmTmp = this.lowerKm < this.upperKm ? this.lowerKm : this.upperKm;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
82 // this.upperKm = this.upperKm > this.lowerKm ? this.upperKm : this.lowerKm;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
83 // this.lowerKm = lowerKmTmp;
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
84 final Button plusBtn = new Button(this.MSG.uinfo_inundation_duration_set_vegetation_zone());
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
85 plusBtn.setAutoFit(true);
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
86 plusBtn.addClickHandler(new ClickHandler() {
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
87 @Override
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
88 public void onClick(final ClickEvent event) {
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
89 final List<TreeNode> selection = datacage.getPlainSelection();
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
90 if (selection == null || selection.isEmpty()) {
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
91 SC.say(VegetationzonesTablePanel.this.MSG.warning());
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
92 return;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
93 }
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
94 final String data = selection.get(0).getAttribute("data");
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
95 // final String vegZoneFromStr = selection.get(0).getAttribute("from_km");
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
96 // final String vegZoneToStr = selection.get(0).getAttribute("to_km");
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
97 // if (vegZoneFromStr != null && vegZoneToStr != null) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
98 // VegetationzonesTablePanel.this.vegZoneFrom = Double.valueOf(vegZoneFromStr);
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
99 // VegetationzonesTablePanel.this.vegZoneTo = Double.valueOf(vegZoneToStr);
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
100 // } else {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
101 // VegetationzonesTablePanel.this.vegZoneFrom = null;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
102 // VegetationzonesTablePanel.this.vegZoneTo = null;
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
103 // }
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
104 createTableFromDataStr(data);
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
105 updateValidationMsgLabel();
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
106 // updateKmOverlapValidationLabel();
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
107 }
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
108 });
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
109
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
110 final VLayout helperLayout = new VLayout();
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
111 helperLayout.addMember(datacage);
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
112 helperLayout.addMember(plusBtn);
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
113
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
114 return helperLayout;
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9118
diff changeset
115 }
9310
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
116
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
117 // private void updateKmOverlapValidationLabel() {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
118 // this.kmOverlapLabel.setText("MÖP");
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
119 // if (this.vegZoneFrom != null && this.vegZoneTo != null) { // standardvegetationstabelle prüfung deaktiviert, da keine
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
120 // km-range angegeben ist
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
121 // if (!(this.vegZoneFrom > this.lowerKm - DELTA && this.vegZoneFrom < this.upperKm + DELTA || //
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
122 // this.vegZoneTo > this.lowerKm - DELTA && this.vegZoneTo < this.upperKm + DELTA)) {
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
123 //
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
124 // this.kmOverlapLabel.setText("Warnung: Der Km-Bereich der gewählten Vegetationstabelle überlappt nicht mit dem hier
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
125 // angegebenen Km-Bereich.");
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
126 // }
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
127 // }
819dbd073624 vegZone no-overlap warning
gernotbelger
parents: 9301
diff changeset
128 // }
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents:
diff changeset
129 }

http://dive4elements.wald.intevation.org