annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9069:1ffd38826175

access uinfo.vegetationzones+inundation_duration
author gernotbelger
date Tue, 15 May 2018 12:00:26 +0200
parents a5cf8d7bff3c
children 611a523fc42f
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
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
14 import com.google.gwt.core.client.GWT;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
15 import com.smartgwt.client.types.ListGridFieldType;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
16 import com.smartgwt.client.widgets.Button;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
17 import com.smartgwt.client.widgets.Canvas;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
18 import com.smartgwt.client.widgets.Label;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
19 import com.smartgwt.client.widgets.events.ClickEvent;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
20 import com.smartgwt.client.widgets.events.ClickHandler;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
21 import com.smartgwt.client.widgets.form.DynamicForm;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
22 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
23 import com.smartgwt.client.widgets.form.validator.IsStringValidator;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
24 import com.smartgwt.client.widgets.grid.ListGridField;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
25 import com.smartgwt.client.widgets.grid.ListGridRecord;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
26 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
27 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
28 import com.smartgwt.client.widgets.layout.HLayout;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
29
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
30 public class VegetationzonesTableEditPanel extends SuperVegZonesTablePanel {
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
31 private static final long serialVersionUID = 1L;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
32
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
33 @Override
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
34 public Canvas createWidget(final DataList data) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
35
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
36 final HLayout fields = new HLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
37 final HLayout fields2 = new HLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
38
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
39 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
40
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
41 data.add(VegetationzonesTablePanel.getDummyData());
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
42
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
43 final Label title = new Label(data.get(0).getDescription());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
44 title.setHeight("35px"); // orig:25
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
45
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
46 this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator());
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
47 this.start = PanelHelper.createItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40, new IsIntegerValidator());
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
48 this.end = PanelHelper.createItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40, new IsIntegerValidator());
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
49
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
50 final DynamicForm form1 = new DynamicForm();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
51 final DynamicForm form2 = new DynamicForm();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
52 form2.setNumCols(5);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
53 form1.setNumCols(7);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
54 form1.setFields(this.vegzone);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
55 form2.setFields(this.start, this.end);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
56
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
57 add.addClickHandler(new ClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
58 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
59 public void onClick(final ClickEvent ce) {
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
60 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
61 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
62 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
63 if (v1 == null || v2 == null || v3 == null) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
64 return;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
65 }
9069
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
66 try {
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
67 final double test = Double.valueOf(v1);
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
68 final double test2 = Double.valueOf(v2);
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
69 // TODO: MAKE MESSAGE, Apply Format (1.000,00)
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
70 }
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
71 catch (final Exception e) {
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
72 e.printStackTrace();
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
73 return;
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
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 final ListGridRecord r = new ListGridRecord();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
77 r.setAttribute("vegzone", v3);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
78 r.setAttribute("from", v1);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
79 r.setAttribute("to", v2);
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
80 VegetationzonesTableEditPanel.this.elements.addData(r);
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
81 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
82 });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
83
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
84 final Label sel = new Label(this.MSG.select());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
85 sel.setHeight(25);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
86 this.elements.setWidth(450); // 185
9069
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9068
diff changeset
87 this.elements.setHeight(300); // 120
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
88 this.elements.setShowHeaderContextMenu(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
89 this.elements.setCanReorderFields(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
90 this.elements.setCanSort(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
91 this.elements.setCanEdit(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
92 final ListGridField vegzone = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
93 final ListGridField from = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
94 final ListGridField to = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
95 vegzone.setWidth(285);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
96 from.setWidth(70);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
97 to.setWidth(70);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
98
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
99 addDataInit(data);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
100
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
101 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
102 {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
103 setType(ListGridFieldType.ICON);
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
104 setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature());
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
105 setCanEdit(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
106 setCanFilter(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
107 setCanSort(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
108 setCanGroupBy(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
109 setCanFreeze(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
110 setWidth(25);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
111 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
112 };
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
113
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
114 this.elements.addRecordClickHandler(new RecordClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
115 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
116 public void onRecordClick(final RecordClickEvent event) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
117 // Just handle remove-clicks
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
118 if (!event.getField().getName().equals(removeField.getName())) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
119 return;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
120 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
121 event.getViewer().removeData(event.getRecord());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
122 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
123 });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
124
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
125 this.elements.setFields(vegzone, from, to, removeField);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
126
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
127 fields.addMember(form1);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
128 fields2.addMember(form2);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
129
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
130 this.tableLayout.addMember(this.elements);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
131 this.root.addMember(title);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
132 this.root.addMember(this.input);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
133 this.root.addMember(this.tableLayout);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
134 this.root.addMember(PanelHelper.getSpacer(10));
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
135 this.root.addMember(fields);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
136 this.root.addMember(fields2);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
137 this.root.addMember(PanelHelper.getSpacer(10));
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
138 this.root.addMember(add);
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
139 this.root.addMember(PanelHelper.getSpacer(20));
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
140
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9066
diff changeset
141 return this.root;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
142 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
143
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
144 }

http://dive4elements.wald.intevation.org