annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9118:431f1c269be5

Veg-Zone Table improved, State change data recovery;
author gernotbelger
date Mon, 04 Jun 2018 19:38:59 +0200
parents 31b3cae5de0d
children 22a3999fd536
rev   line source
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
3 *
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
7 */
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
8
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.client.client.ui.uinfo;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
10
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
11 import org.dive4elements.river.client.client.ui.PanelHelper;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
12 import org.dive4elements.river.client.shared.model.DataList;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
13
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
14 import com.smartgwt.client.util.SC;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
15 import com.smartgwt.client.widgets.Button;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
16 import com.smartgwt.client.widgets.events.ClickEvent;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
17 import com.smartgwt.client.widgets.events.ClickHandler;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
18 import com.smartgwt.client.widgets.form.DynamicForm;
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
19 import com.smartgwt.client.widgets.form.fields.TextItem;
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
20 import com.smartgwt.client.widgets.grid.ListGrid;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
21 import com.smartgwt.client.widgets.grid.ListGridRecord;
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
22 import com.smartgwt.client.widgets.layout.Layout;
9108
f5b55b383ef9 VegZones Layout Nachtrag
gernotbelger
parents: 9107
diff changeset
23 import com.smartgwt.client.widgets.layout.VLayout;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
24
9070
611a523fc42f VegetationZoneAccessHelper, VegetationTablePanels verbessert
gernotbelger
parents: 9069
diff changeset
25 public class VegetationzonesTableEditPanel extends AbstractVegZonesTablePanel {
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
26 private static final long serialVersionUID = 1L;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
27
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
28 private TextItem vegzone;
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
29
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
30 private TextItem start;
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
31
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
32 private TextItem end;
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
33
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
34 @Override
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
35 public void createWidget(final Layout root, final DataList data) {
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
36
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9114
diff changeset
37 final ListGrid elements = super.createTable(root, data, "450", true);
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
38
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9114
diff changeset
39 this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), "*");// 450);
9108
f5b55b383ef9 VegZones Layout Nachtrag
gernotbelger
parents: 9107
diff changeset
40 this.vegzone.setColSpan(4);
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9114
diff changeset
41 this.start = PanelHelper.createIntegerItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), "*");
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9114
diff changeset
42 this.end = PanelHelper.createIntegerItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), "*");
9108
f5b55b383ef9 VegZones Layout Nachtrag
gernotbelger
parents: 9107
diff changeset
43 final VLayout fields = new VLayout();
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
44
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
45 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
46
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
47 final DynamicForm form1 = new DynamicForm();
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9114
diff changeset
48
9108
f5b55b383ef9 VegZones Layout Nachtrag
gernotbelger
parents: 9107
diff changeset
49 form1.setNumCols(4); // für Layout untereinander muss 2 eingestellt werden
f5b55b383ef9 VegZones Layout Nachtrag
gernotbelger
parents: 9107
diff changeset
50
f5b55b383ef9 VegZones Layout Nachtrag
gernotbelger
parents: 9107
diff changeset
51 form1.setFields(this.vegzone, this.start, this.end);
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
52
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
53 add.addClickHandler(new ClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
54 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
55 public void onClick(final ClickEvent ce) {
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
56 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
57 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
58 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
59 final String message = validate(v1, v2, v3);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
60 if (message != null) {
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
61 SC.warn(message);
9069
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
62 return;
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
63 }
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
64
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
65 final ListGridRecord r = new ListGridRecord();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
66 r.setAttribute("vegzone", v3);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
67 r.setAttribute("from", v1);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
68 r.setAttribute("to", v2);
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
69 elements.addData(r);
9114
31b3cae5de0d sortable table veg'zones
gernotbelger
parents: 9108
diff changeset
70 final String sortField = elements.getSortField();
31b3cae5de0d sortable table veg'zones
gernotbelger
parents: 9108
diff changeset
71 if (sortField != null) {
31b3cae5de0d sortable table veg'zones
gernotbelger
parents: 9108
diff changeset
72 elements.toggleSort(sortField);
31b3cae5de0d sortable table veg'zones
gernotbelger
parents: 9108
diff changeset
73 elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-(
31b3cae5de0d sortable table veg'zones
gernotbelger
parents: 9108
diff changeset
74 }
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
75 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
76 });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
77
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
78 fields.addMember(form1);
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9114
diff changeset
79
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
80 root.addMember(fields);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
81 root.addMember(PanelHelper.getSpacer(10));
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
82 root.addMember(add);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
83 root.addMember(PanelHelper.getSpacer(20));
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
84 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
85
9107
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
86 protected String validate(final String v1, final String v2, final String v3) {
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
87
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
88 if (v1 == null || v2 == null || v3 == null || v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty())
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
89 return this.MSG.uinfo_vegetation_zones_validation_empty();
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
90
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
91 try {
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
92 final Integer from = Integer.valueOf(v1);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
93 final Integer to = Integer.valueOf(v2);
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
94
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
95 if (from < 0 || from > 365)
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
96 return this.MSG.uinfo_vegetation_zones_validation_range();
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
97
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
98 if (to < 0 || to > 365)
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
99 return this.MSG.uinfo_vegetation_zones_validation_range();
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
100
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
101 if (from > to)
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
102 return this.MSG.uinfo_vegetation_zones_validation_from_greater_to();
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
103
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
104 return null;
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
105 }
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
106 catch (final NumberFormatException e) {
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
107 return this.MSG.uinfo_vegetation_zones_invalid_integer();
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
108 }
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
109 }
41f4bc83aa7a vegzones improved
gernotbelger
parents: 9070
diff changeset
110 }

http://dive4elements.wald.intevation.org