comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9068:a5cf8d7bff3c

access uinfo.salx; tablePanel edit/non-edit merge
author gernotbelger
date Mon, 14 May 2018 18:24:35 +0200
parents b5d7a9d79837
children 1ffd38826175
comparison
equal deleted inserted replaced
9067:2ed3824a3d53 9068:a5cf8d7bff3c
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.client.client.ui.uinfo; 9 package org.dive4elements.river.client.client.ui.uinfo;
10 10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import org.dive4elements.river.client.client.ui.AbstractUIProvider;
15 import org.dive4elements.river.client.client.ui.PanelHelper; 11 import org.dive4elements.river.client.client.ui.PanelHelper;
16 import org.dive4elements.river.client.shared.model.Data;
17 import org.dive4elements.river.client.shared.model.DataItem;
18 import org.dive4elements.river.client.shared.model.DataList; 12 import org.dive4elements.river.client.shared.model.DataList;
19 import org.dive4elements.river.client.shared.model.DefaultData;
20 import org.dive4elements.river.client.shared.model.DefaultDataItem;
21 13
22 import com.google.gwt.core.client.GWT; 14 import com.google.gwt.core.client.GWT;
23 import com.smartgwt.client.data.Record;
24 import com.smartgwt.client.types.ListGridFieldType; 15 import com.smartgwt.client.types.ListGridFieldType;
25 import com.smartgwt.client.widgets.Button; 16 import com.smartgwt.client.widgets.Button;
26 import com.smartgwt.client.widgets.Canvas; 17 import com.smartgwt.client.widgets.Canvas;
27 import com.smartgwt.client.widgets.Label; 18 import com.smartgwt.client.widgets.Label;
28 import com.smartgwt.client.widgets.events.ClickEvent; 19 import com.smartgwt.client.widgets.events.ClickEvent;
29 import com.smartgwt.client.widgets.events.ClickHandler; 20 import com.smartgwt.client.widgets.events.ClickHandler;
30 import com.smartgwt.client.widgets.form.DynamicForm; 21 import com.smartgwt.client.widgets.form.DynamicForm;
31 import com.smartgwt.client.widgets.form.fields.TextItem;
32 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; 22 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
33 import com.smartgwt.client.widgets.form.validator.IsStringValidator; 23 import com.smartgwt.client.widgets.form.validator.IsStringValidator;
34 import com.smartgwt.client.widgets.grid.ListGrid;
35 import com.smartgwt.client.widgets.grid.ListGridField; 24 import com.smartgwt.client.widgets.grid.ListGridField;
36 import com.smartgwt.client.widgets.grid.ListGridRecord; 25 import com.smartgwt.client.widgets.grid.ListGridRecord;
37 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; 26 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
38 import com.smartgwt.client.widgets.grid.events.RecordClickHandler; 27 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
39 import com.smartgwt.client.widgets.layout.HLayout; 28 import com.smartgwt.client.widgets.layout.HLayout;
40 import com.smartgwt.client.widgets.layout.VLayout;
41 29
42 public class VegetationzonesTableEditPanel extends AbstractUIProvider { 30 public class VegetationzonesTableEditPanel extends SuperVegZonesTablePanel {
43 private static final long serialVersionUID = 1L; 31 private static final long serialVersionUID = 1L;
44 32
45 protected ListGrid elements; 33 @Override
46 private TextItem vegzone;
47 private TextItem start;
48 private TextItem end;
49 private ListGrid table;
50
51 private static final String datakey = "vegzones";
52
53 public Canvas createWidget(final DataList data) { 34 public Canvas createWidget(final DataList data) {
54 35
55 final VLayout root = new VLayout();
56 final HLayout input = new HLayout();
57 final VLayout tableLayout = new VLayout();
58 final HLayout fields = new HLayout(); 36 final HLayout fields = new HLayout();
59 final HLayout fields2 = new HLayout(); 37 final HLayout fields2 = new HLayout();
60 38
61 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific 39 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific
62 this.elements = new ListGrid(); 40
41 data.add(VegetationzonesTablePanel.getDummyData());
63 42
64 final Label title = new Label(data.get(0).getDescription()); 43 final Label title = new Label(data.get(0).getDescription());
65 title.setHeight("35px"); // orig:25 44 title.setHeight("35px"); // orig:25
66 45
67 this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator()); 46 this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator());
106 final ListGridField to = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to()); 85 final ListGridField to = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to());
107 vegzone.setWidth(285); 86 vegzone.setWidth(285);
108 from.setWidth(70); 87 from.setWidth(70);
109 to.setWidth(70); 88 to.setWidth(70);
110 89
90 addDataInit(data);
91
111 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") { 92 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
112 { 93 {
113 setType(ListGridFieldType.ICON); 94 setType(ListGridFieldType.ICON);
114 setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature()); 95 setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature());
115 setCanEdit(false); 96 setCanEdit(false);
134 115
135 this.elements.setFields(vegzone, from, to, removeField); 116 this.elements.setFields(vegzone, from, to, removeField);
136 117
137 fields.addMember(form1); 118 fields.addMember(form1);
138 fields2.addMember(form2); 119 fields2.addMember(form2);
139 // fields2.addMember(add);
140 120
141 tableLayout.addMember(this.elements); 121 this.tableLayout.addMember(this.elements);
142 root.addMember(title); 122 this.root.addMember(title);
143 root.addMember(input); 123 this.root.addMember(this.input);
144 root.addMember(tableLayout); 124 this.root.addMember(this.tableLayout);
145 root.addMember(PanelHelper.getSpacer(10)); 125 this.root.addMember(PanelHelper.getSpacer(10));
146 root.addMember(fields); 126 this.root.addMember(fields);
147 root.addMember(fields2); 127 this.root.addMember(fields2);
148 root.addMember(PanelHelper.getSpacer(10)); 128 this.root.addMember(PanelHelper.getSpacer(10));
149 root.addMember(add); 129 this.root.addMember(add);
150 root.addMember(PanelHelper.getSpacer(20)); 130 this.root.addMember(PanelHelper.getSpacer(20));
151 131
152 return root; 132 return this.root;
153 }
154
155 @Override
156 public Canvas createOld(final DataList dataList) {
157 final HLayout layout = new HLayout();
158 layout.setWidth("400px");
159 final VLayout vLayout = new VLayout();
160 vLayout.setWidth(130);
161 final Label label = new Label(dataList.getLabel());
162 label.setWidth("200px");
163 label.setHeight(25);
164
165 final List<Data> items = dataList.getAll();
166 final Data str = getData(items, datakey);
167 final DataItem[] strItems = str.getItems();
168
169 final String[] entries = strItems[0].getLabel().split(";");
170 for (final String entry : entries) {
171 final String[] vals = entry.split(",");
172 final Label dateLabel = new Label(vals[0] + " - " + vals[1]);
173 dateLabel.setHeight(20);
174 vLayout.addMember(dateLabel);
175 }
176 final Canvas back = getBackButton(dataList.getState());
177 layout.addMember(label);
178 layout.addMember(vLayout);
179 layout.addMember(back);
180
181 return layout;
182 }
183
184 @Override
185 public Canvas create(final DataList data) {
186 final VLayout layout = new VLayout();
187 final Canvas helper = createHelper();
188 this.helperContainer.addMember(helper);
189
190 final Canvas submit = getNextButton();
191 final Canvas widget = createWidget(data);
192
193 layout.addMember(widget);
194 layout.addMember(submit); // TODO: SUBMIT
195
196 // fetchSedimentLoadData(); //TODO: feed from database...
197
198 return layout;
199 }
200
201 private Canvas createHelper() {
202 this.table = new ListGrid();
203 this.table.setShowHeaderContextMenu(false);
204 this.table.setWidth100();
205 this.table.setShowRecordComponents(true);
206 this.table.setShowRecordComponentsByCell(true);
207 this.table.setHeight100();
208 this.table.setEmptyMessage(this.MSG.empty_table());
209 this.table.setCanReorderFields(false);
210
211 /* Input support pins */
212 // final String baseUrl = GWT.getHostPageBaseURL();
213 // final ListGridField pinFrom = new ListGridField("fromIcon", this.MSG.uinfo_vegetation_zones_from());
214 // pinFrom.setWidth(300);
215 // pinFrom.setType(ListGridFieldType.ICON);
216 // pinFrom.setCellIcon(baseUrl + this.MSG.markerGreen());
217 //
218 // final ListGridField pinTo = new ListGridField("toIcon", this.MSG.uinfo_vegetation_zones_to());
219 // pinTo.setType(ListGridFieldType.ICON);
220 // pinTo.setWidth(300);
221 // pinTo.setCellIcon(baseUrl + this.MSG.markerRed());
222 //
223 // pinFrom.addRecordClickHandler(new RecordClickHandler() {
224 // @Override
225 // public void onRecordClick(final RecordClickEvent e) {
226 // final Record r = e.getRecord();
227 // VegetationzonesTableEditPanel.this.vegzone.setValue(r.getAttribute("date")); // date??
228 // }
229 // });
230 //
231 // pinFrom.addRecordClickHandler(new RecordClickHandler() {
232 // @Override
233 // public void onRecordClick(final RecordClickEvent e) {
234 // final Record r = e.getRecord();
235 // VegetationzonesTableEditPanel.this.start.setValue(r.getAttribute("date"));
236 // }
237 // });
238 //
239 // pinTo.addRecordClickHandler(new RecordClickHandler() {
240 // @Override
241 // public void onRecordClick(final RecordClickEvent e) {
242 // final Record r = e.getRecord();
243 // VegetationzonesTableEditPanel.this.end.setValue(r.getAttribute("date"));
244 // }
245 // });
246 //
247 // final ListGridField date = new ListGridField("date", this.MSG.year());
248 // date.setType(ListGridFieldType.TEXT);
249 // date.setWidth(100);
250 //
251 // final ListGridField descr = new ListGridField("description", this.MSG.description());
252 // descr.setType(ListGridFieldType.TEXT);
253 // descr.setWidth("*");
254 //
255 // this.table.setFields(pinFrom, pinTo, date, descr);
256 return this.table;
257 }
258
259 @Override
260 protected Data[] getData() {
261 final List<Data> data = new ArrayList<Data>();
262
263 final ListGridRecord[] lgr = this.elements.getRecords();
264 if (lgr.length == 0) {
265 return new Data[0];
266 }
267 String d = "";
268 for (final ListGridRecord element : lgr) {
269 final Record r = element;
270 d += r.getAttribute("vegzone") + "," + r.getAttribute("from") + "," + r.getAttribute("to");
271 d += ";";
272 }
273
274 final DataItem item = new DefaultDataItem(datakey, null, d); // DATA-key
275 data.add(new DefaultData(datakey, null, null, new DataItem[] { item }));
276 return data.toArray(new Data[data.size()]);
277 } 133 }
278 134
279 } 135 }

http://dive4elements.wald.intevation.org