Mercurial > dive4elements > river
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 } |