annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTable.java @ 9064:28c50f5efceb

work on uinfo-vegetation-zones table
author gernotbelger
date Wed, 09 May 2018 16:31:12 +0200
parents
children
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
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
11 import java.util.ArrayList;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
12 import java.util.List;
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 org.dive4elements.river.client.client.ui.AbstractUIProvider;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.client.shared.model.Data;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.client.shared.model.DataItem;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.client.shared.model.DataList;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.client.shared.model.DefaultData;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.client.shared.model.DefaultDataItem;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
20
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
21 import com.google.gwt.core.client.GWT;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
22 import com.smartgwt.client.data.Record;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
23 import com.smartgwt.client.types.ListGridFieldType;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
24 import com.smartgwt.client.widgets.Button;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
25 import com.smartgwt.client.widgets.Canvas;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
26 import com.smartgwt.client.widgets.Label;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
27 import com.smartgwt.client.widgets.events.ClickEvent;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
28 import com.smartgwt.client.widgets.events.ClickHandler;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
29 import com.smartgwt.client.widgets.form.DynamicForm;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
30 import com.smartgwt.client.widgets.form.fields.TextItem;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
31 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
32 import com.smartgwt.client.widgets.form.validator.IsStringValidator;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
33 import com.smartgwt.client.widgets.form.validator.Validator;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
34 import com.smartgwt.client.widgets.grid.ListGrid;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
35 import com.smartgwt.client.widgets.grid.ListGridField;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
36 import com.smartgwt.client.widgets.grid.ListGridRecord;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
37 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
38 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
39 import com.smartgwt.client.widgets.layout.HLayout;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
40 import com.smartgwt.client.widgets.layout.VLayout;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
41
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
42 public class VegetationzonesTable extends AbstractUIProvider {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
43 private static final long serialVersionUID = 1L;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
44
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
45 protected ListGrid elements;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
46 private TextItem vegzone;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
47 private TextItem start;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
48 private TextItem end;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
49 private ListGrid table;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
50
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
51 private TextItem createItem(final String identifier, final String title, final int width, final Validator... validator) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
52 final TextItem item = new TextItem(identifier, title);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
53 item.setWidth(width);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
54 item.setWrapTitle(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
55 item.setValidators(validator);// eigentlich überflüssig, oder?
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
56 return item;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
57 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
58
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
59 public Canvas createWidget(final DataList data) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
60
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
61 final VLayout root = new VLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
62 final HLayout input = new HLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
63 final VLayout tableLayout = new VLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
64 final HLayout fields = new HLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
65 final HLayout fields2 = new HLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
66 final VLayout spacer = new VLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
67 spacer.setHeight(10);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
68
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
69 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
70 this.elements = new ListGrid();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
71
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
72 final Label title = new Label(data.get(0).getDescription());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
73 title.setHeight("35px"); // orig:25
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
74
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
75 this.vegzone = createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
76 this.start = createItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40, new IsIntegerValidator());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
77 this.end = createItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40, new IsIntegerValidator());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
78
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
79 final DynamicForm form1 = new DynamicForm();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
80 final DynamicForm form2 = new DynamicForm();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
81 form2.setNumCols(5);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
82 form1.setNumCols(7);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
83 form1.setFields(this.vegzone);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
84 form2.setFields(this.start, this.end);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
85
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
86 add.addClickHandler(new ClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
87 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
88 public void onClick(final ClickEvent ce) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
89 final String v1 = VegetationzonesTable.this.start.getValueAsString();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
90 final String v2 = VegetationzonesTable.this.end.getValueAsString();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
91 final String v3 = VegetationzonesTable.this.vegzone.getValueAsString();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
92 if (v1 == null || v2 == null || v3 == null) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
93 return;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
94 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
95
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
96 final ListGridRecord r = new ListGridRecord();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
97 r.setAttribute("vegzone", v3);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
98 r.setAttribute("from", v1);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
99 r.setAttribute("to", v2);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
100 VegetationzonesTable.this.elements.addData(r);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
101 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
102 });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
103
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
104 final Label sel = new Label(this.MSG.select());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
105 sel.setHeight(25);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
106 this.elements.setWidth(450); // 185
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
107 this.elements.setHeight(500); // 120
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
108 this.elements.setShowHeaderContextMenu(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
109 this.elements.setCanReorderFields(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
110 this.elements.setCanSort(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
111 this.elements.setCanEdit(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
112 final ListGridField vegzone = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
113 final ListGridField from = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
114 final ListGridField to = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
115 vegzone.setWidth(285);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
116 from.setWidth(70);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
117 to.setWidth(70);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
118
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
119 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
120 {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
121 setType(ListGridFieldType.ICON);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
122 setIcon(GWT.getHostPageBaseURL() + VegetationzonesTable.this.MSG.removeFeature());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
123 setCanEdit(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
124 setCanFilter(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
125 setCanSort(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
126 setCanGroupBy(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
127 setCanFreeze(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
128 setWidth(25);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
129 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
130 };
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
131
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
132 this.elements.addRecordClickHandler(new RecordClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
133 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
134 public void onRecordClick(final RecordClickEvent event) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
135 // Just handle remove-clicks
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
136 if (!event.getField().getName().equals(removeField.getName())) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
137 return;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
138 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
139 event.getViewer().removeData(event.getRecord());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
140 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
141 });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
142
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
143 this.elements.setFields(vegzone, from, to, removeField);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
144
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
145 fields.addMember(form1);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
146 fields2.addMember(form2);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
147 // fields2.addMember(add);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
148
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
149 tableLayout.addMember(this.elements);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
150 root.addMember(title);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
151 root.addMember(input);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
152 root.addMember(tableLayout);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
153 root.addMember(spacer);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
154 root.addMember(fields);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
155 root.addMember(fields2);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
156 root.addMember(spacer);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
157 root.addMember(add);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
158 root.addMember(spacer);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
159 root.addMember(spacer);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
160
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
161 return root;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
162 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
163
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
164 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
165 public Canvas createOld(final DataList dataList) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
166 final HLayout layout = new HLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
167 layout.setWidth("400px");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
168 final VLayout vLayout = new VLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
169 vLayout.setWidth(130);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
170 final Label label = new Label(dataList.getLabel());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
171 label.setWidth("200px");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
172 label.setHeight(25);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
173
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
174 final List<Data> items = dataList.getAll();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
175 final Data str = getData(items, "vegzones");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
176 final DataItem[] strItems = str.getItems();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
177
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
178 final String[] entries = strItems[0].getLabel().split(";");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
179 for (final String entry : entries) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
180 final String[] vals = entry.split(",");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
181 final Label dateLabel = new Label(vals[0] + " - " + vals[1]);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
182 dateLabel.setHeight(20);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
183 vLayout.addMember(dateLabel);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
184 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
185 final Canvas back = getBackButton(dataList.getState());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
186 layout.addMember(label);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
187 layout.addMember(vLayout);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
188 layout.addMember(back);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
189
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
190 return layout;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
191 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
192
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
193 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
194 public Canvas create(final DataList data) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
195 final VLayout layout = new VLayout();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
196 final Canvas helper = createHelper();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
197 this.helperContainer.addMember(helper);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
198
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
199 final Canvas submit = getNextButton();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
200 final Canvas widget = createWidget(data);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
201
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
202 layout.addMember(widget);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
203 layout.addMember(submit); // TODO: SUBMIT
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
204
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
205 // fetchSedimentLoadData(); //TODO: feed from database...
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
206
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
207 return layout;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
208 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
209
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
210 private Canvas createHelper() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
211 this.table = new ListGrid();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
212 this.table.setShowHeaderContextMenu(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
213 this.table.setWidth100();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
214 this.table.setShowRecordComponents(true);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
215 this.table.setShowRecordComponentsByCell(true);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
216 this.table.setHeight100();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
217 this.table.setEmptyMessage(this.MSG.empty_table());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
218 this.table.setCanReorderFields(false);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
219
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
220 /* Input support pins */
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
221 // final String baseUrl = GWT.getHostPageBaseURL();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
222 // final ListGridField pinFrom = new ListGridField("fromIcon", this.MSG.uinfo_vegetation_zones_from());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
223 // pinFrom.setWidth(300);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
224 // pinFrom.setType(ListGridFieldType.ICON);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
225 // pinFrom.setCellIcon(baseUrl + this.MSG.markerGreen());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
226 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
227 // final ListGridField pinTo = new ListGridField("toIcon", this.MSG.uinfo_vegetation_zones_to());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
228 // pinTo.setType(ListGridFieldType.ICON);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
229 // pinTo.setWidth(300);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
230 // pinTo.setCellIcon(baseUrl + this.MSG.markerRed());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
231 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
232 // pinFrom.addRecordClickHandler(new RecordClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
233 // @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
234 // public void onRecordClick(final RecordClickEvent e) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
235 // final Record r = e.getRecord();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
236 // VegetationzonesTable.this.vegzone.setValue(r.getAttribute("date")); // date??
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
237 // }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
238 // });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
239 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
240 // pinFrom.addRecordClickHandler(new RecordClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
241 // @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
242 // public void onRecordClick(final RecordClickEvent e) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
243 // final Record r = e.getRecord();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
244 // VegetationzonesTable.this.start.setValue(r.getAttribute("date"));
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
245 // }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
246 // });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
247 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
248 // pinTo.addRecordClickHandler(new RecordClickHandler() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
249 // @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
250 // public void onRecordClick(final RecordClickEvent e) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
251 // final Record r = e.getRecord();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
252 // VegetationzonesTable.this.end.setValue(r.getAttribute("date"));
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
253 // }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
254 // });
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
255 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
256 // final ListGridField date = new ListGridField("date", this.MSG.year());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
257 // date.setType(ListGridFieldType.TEXT);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
258 // date.setWidth(100);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
259 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
260 // final ListGridField descr = new ListGridField("description", this.MSG.description());
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
261 // descr.setType(ListGridFieldType.TEXT);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
262 // descr.setWidth("*");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
263 //
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
264 // this.table.setFields(pinFrom, pinTo, date, descr);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
265 return this.table;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
266 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
267
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
268 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
269 protected Data[] getData() {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
270 final List<Data> data = new ArrayList<Data>();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
271
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
272 final ListGridRecord[] lgr = this.elements.getRecords();
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
273 if (lgr.length == 0) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
274 return new Data[0];
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
275 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
276 String d = "";
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
277 for (final ListGridRecord element : lgr) {
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
278 final Record r = element;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
279 d += r.getAttribute("vegzone") + "," + r.getAttribute("from") + "," + r.getAttribute("to");
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
280 d += ";";
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
281 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
282
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
283 final DataItem item = new DefaultDataItem("vegzones", null, d); // DATA-key
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
284 data.add(new DefaultData("vegzones", null, null, new DataItem[] { item }));
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
285 return data.toArray(new Data[data.size()]);
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
286 }
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
287
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
288 }

http://dive4elements.wald.intevation.org