comparison 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
comparison
equal deleted inserted replaced
9309:9a9f076d5716 9310:819dbd073624
10 10
11 import java.util.List; 11 import java.util.List;
12 12
13 import org.dive4elements.river.client.client.ui.DatacageWidget; 13 import org.dive4elements.river.client.client.ui.DatacageWidget;
14 import org.dive4elements.river.client.client.ui.DatacageWidgetData; 14 import org.dive4elements.river.client.client.ui.DatacageWidgetData;
15 import org.dive4elements.river.client.shared.model.ArtifactDescription;
15 import org.dive4elements.river.client.shared.model.DataList; 16 import org.dive4elements.river.client.shared.model.DataList;
16 import org.dive4elements.river.client.shared.model.User; 17 import org.dive4elements.river.client.shared.model.User;
17 18
18 import com.smartgwt.client.util.SC; 19 import com.smartgwt.client.util.SC;
19 import com.smartgwt.client.widgets.Button; 20 import com.smartgwt.client.widgets.Button;
25 import com.smartgwt.client.widgets.tree.TreeNode; 26 import com.smartgwt.client.widgets.tree.TreeNode;
26 27
27 public class VegetationzonesTablePanel extends AbstractVegZonesTablePanel { 28 public class VegetationzonesTablePanel extends AbstractVegZonesTablePanel {
28 29
29 private static final long serialVersionUID = 1L; 30 private static final long serialVersionUID = 1L;
31
32 private final static Double DELTA = 0.0000001;
33
30 private final User user; 34 private final User user;
35
36 // private double lowerKm = 0.0;
37 // private double upperKm = 0.0;
38 // private final Double vegZoneFrom = null;
39 // private final Double vegZoneTo = null;
40 // private final Label kmOverlapLabel = new Label();
41
42 // TODO: in der LV steht, dass eine Warnung herausgegeben werden soll, wenn der kmBereich der ausgewählten
43 // Vegetationszone NICHT überlappt.
44 // Derzeit werden durch den XPathQuery (siehe meta-data.xml usw) solche Vegetationszonen ohnehin gefiltert (nicht
45 // angezeigt) - so wie es bisher überall standard ist, sodass
46 // die Warnfunktion obsolet ist. Sollte der AG auf die LV bestehen, müsste der Query angepasst werden und hier alles
47 // wieder einkommentiert werden
31 48
32 public VegetationzonesTablePanel(final User user) { 49 public VegetationzonesTablePanel(final User user) {
33 super(); 50 super();
34 this.user = user; 51 this.user = user;
35 } 52 }
36 53
37 @Override 54 @Override
38 public void createWidget(final Layout root, final DataList data) { 55 public void createWidget(final Layout root, final DataList data) {
39 createTable(root, data, "420", false); 56 createTable(root, data, "420", false);
57 // this.kmOverlapLabel.getElement().getStyle().setColor("red");
58 // root.addMember(this.kmOverlapLabel);
40 } 59 }
41 60
42 @Override 61 @Override
43 protected Canvas createHelper(final DataList dataList) { 62 protected Canvas createHelper(final DataList dataList) {
44 63
45 final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.user, "uinfo.inundation_duration.vegZoneSelect", "load-system:true", false); 64 final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.user, "uinfo.inundation_duration.vegZoneSelect", "load-system:true", false);
46 65
47 final DatacageWidget datacage = new DatacageWidget(data); 66 final DatacageWidget datacage = new DatacageWidget(data);
67 final ArtifactDescription artifact = this.artifact.getArtifactDescription();
48 68
69 // for (final DataList item : artifact.getOldData()) {
70 // if (item.getState().equals("state.uinfo.inundationduration.distance_only")) {
71 // for (final Data fromTo : item.getAll()) {
72 // if (fromTo.getLabel().equals("ld_from")) {
73 // this.lowerKm = Double.valueOf(fromTo.getStringValue());
74 // } else if (fromTo.getLabel().equals("ld_to")) {
75 // this.upperKm = Double.valueOf(fromTo.getStringValue());
76 // }
77 //
78 // }
79 // }
80 // }
81 // final double lowerKmTmp = this.lowerKm < this.upperKm ? this.lowerKm : this.upperKm;
82 // this.upperKm = this.upperKm > this.lowerKm ? this.upperKm : this.lowerKm;
83 // this.lowerKm = lowerKmTmp;
49 final Button plusBtn = new Button(this.MSG.uinfo_inundation_duration_set_vegetation_zone()); 84 final Button plusBtn = new Button(this.MSG.uinfo_inundation_duration_set_vegetation_zone());
50 plusBtn.setAutoFit(true); 85 plusBtn.setAutoFit(true);
51 plusBtn.addClickHandler(new ClickHandler() { 86 plusBtn.addClickHandler(new ClickHandler() {
52 @Override 87 @Override
53 public void onClick(final ClickEvent event) { 88 public void onClick(final ClickEvent event) {
55 if (selection == null || selection.isEmpty()) { 90 if (selection == null || selection.isEmpty()) {
56 SC.say(VegetationzonesTablePanel.this.MSG.warning()); 91 SC.say(VegetationzonesTablePanel.this.MSG.warning());
57 return; 92 return;
58 } 93 }
59 final String data = selection.get(0).getAttribute("data"); 94 final String data = selection.get(0).getAttribute("data");
95 // final String vegZoneFromStr = selection.get(0).getAttribute("from_km");
96 // final String vegZoneToStr = selection.get(0).getAttribute("to_km");
97 // if (vegZoneFromStr != null && vegZoneToStr != null) {
98 // VegetationzonesTablePanel.this.vegZoneFrom = Double.valueOf(vegZoneFromStr);
99 // VegetationzonesTablePanel.this.vegZoneTo = Double.valueOf(vegZoneToStr);
100 // } else {
101 // VegetationzonesTablePanel.this.vegZoneFrom = null;
102 // VegetationzonesTablePanel.this.vegZoneTo = null;
103 // }
60 createTableFromDataStr(data); 104 createTableFromDataStr(data);
61 updateValidationMsgLabel(); 105 updateValidationMsgLabel();
106 // updateKmOverlapValidationLabel();
62 } 107 }
63 }); 108 });
64 109
65 final VLayout helperLayout = new VLayout(); 110 final VLayout helperLayout = new VLayout();
66 helperLayout.addMember(datacage); 111 helperLayout.addMember(datacage);
67 helperLayout.addMember(plusBtn); 112 helperLayout.addMember(plusBtn);
68 113
69 return helperLayout; 114 return helperLayout;
70 } 115 }
116
117 // private void updateKmOverlapValidationLabel() {
118 // this.kmOverlapLabel.setText("MÖP");
119 // if (this.vegZoneFrom != null && this.vegZoneTo != null) { // standardvegetationstabelle prüfung deaktiviert, da keine
120 // km-range angegeben ist
121 // if (!(this.vegZoneFrom > this.lowerKm - DELTA && this.vegZoneFrom < this.upperKm + DELTA || //
122 // this.vegZoneTo > this.lowerKm - DELTA && this.vegZoneTo < this.upperKm + DELTA)) {
123 //
124 // this.kmOverlapLabel.setText("Warnung: Der Km-Bereich der gewählten Vegetationstabelle überlappt nicht mit dem hier
125 // angegebenen Km-Bereich.");
126 // }
127 // }
128 // }
71 } 129 }

http://dive4elements.wald.intevation.org