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