Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/sinfo/FloodInfrastructurePanel.java @ 9624:02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Fri, 11 Oct 2019 18:30:36 +0200 |
parents | 8ed6c45136fa |
children |
rev | line source |
---|---|
9611 | 1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by | |
3 * Björnsen Beratende Ingenieure GmbH | |
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt | |
5 * | |
6 * This file is Free Software under the GNU AGPL (>=v3) | |
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
8 * documentation coming with Dive4Elements River for details. | |
9 */ | |
10 package org.dive4elements.river.client.client.ui.sinfo; | |
11 | |
12 import java.util.ArrayList; | |
13 import java.util.List; | |
14 | |
15 import org.dive4elements.river.client.client.ui.AbstractUIProvider; | |
16 import org.dive4elements.river.client.client.ui.DatacageWidget; | |
17 import org.dive4elements.river.client.client.ui.DatacageWidgetData; | |
18 import org.dive4elements.river.client.client.ui.PanelHelper; | |
19 import org.dive4elements.river.client.shared.model.Data; | |
20 import org.dive4elements.river.client.shared.model.DataItem; | |
21 import org.dive4elements.river.client.shared.model.DataList; | |
22 import org.dive4elements.river.client.shared.model.DefaultData; | |
23 import org.dive4elements.river.client.shared.model.DefaultDataItem; | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
24 import org.dive4elements.river.client.shared.model.InfrastructureServerClientXChange; |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
25 import org.dive4elements.river.client.shared.model.InfrastructureServerClientXChange.Element; |
9611 | 26 import org.dive4elements.river.client.shared.model.User; |
27 | |
28 import com.google.gwt.core.client.GWT; | |
29 import com.smartgwt.client.types.ListGridFieldType; | |
30 import com.smartgwt.client.util.SC; | |
31 import com.smartgwt.client.widgets.Button; | |
32 import com.smartgwt.client.widgets.Canvas; | |
33 import com.smartgwt.client.widgets.Label; | |
34 import com.smartgwt.client.widgets.events.ClickEvent; | |
35 import com.smartgwt.client.widgets.events.ClickHandler; | |
36 import com.smartgwt.client.widgets.grid.ListGrid; | |
37 import com.smartgwt.client.widgets.grid.ListGridField; | |
38 import com.smartgwt.client.widgets.grid.ListGridRecord; | |
39 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; | |
40 import com.smartgwt.client.widgets.grid.events.RecordClickHandler; | |
41 import com.smartgwt.client.widgets.layout.HLayout; | |
42 import com.smartgwt.client.widgets.layout.Layout; | |
43 import com.smartgwt.client.widgets.layout.VLayout; | |
44 import com.smartgwt.client.widgets.tree.TreeNode; | |
45 | |
46 /** | |
47 * @author Domenico Nardi Tironi | |
48 * | |
49 */ | |
50 public class FloodInfrastructurePanel extends AbstractUIProvider { | |
51 private static final long serialVersionUID = 1L; | |
52 | |
53 private static final String datakey = "flood_infrastructure"; | |
54 private ListGrid elements = new ListGrid(); | |
55 | |
56 private final User m_user; | |
57 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
58 private final InfrastructureServerClientXChange xchangeHelper = new InfrastructureServerClientXChange(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
59 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
60 private Button submit; |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
61 |
9611 | 62 public FloodInfrastructurePanel(final User user) { |
63 this.m_user = user; | |
64 } | |
65 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
66 protected final ListGrid createTable(final Layout root, final DataList data, final String width) { |
9611 | 67 |
68 final Label title = new Label(data.get(0).getDescription()); | |
69 title.setHeight("35px"); | |
70 | |
71 this.elements.setWidth(width); | |
72 this.elements.setHeight(300); | |
73 this.elements.setShowHeaderContextMenu(false); | |
74 this.elements.setCanReorderFields(false); | |
75 this.elements.setCanSort(true); | |
76 this.elements.setSortField("to"); | |
77 this.elements.setCanResizeFields(false); | |
78 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
79 this.elements.setCanEdit(false); |
9611 | 80 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
81 final ListGridField groupIdField = new ListGridField("group_id", "groupId"); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
82 groupIdField.setHidden(true); |
9611 | 83 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
84 final ListGridField groupField = createField("group_label", "Infrastruktur BWaStr");// this.MSG.uinfo_vegetation_zones_label()); |
9611 | 85 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
86 final ListGridField typeIdField = new ListGridField("type_id", "typeId"); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
87 typeIdField.setHidden(true); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
88 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
89 final ListGridField typeField = createField("type_label", "Typ/Bezeichnung");// this.MSG.uinfo_vegetation_zones_label()); |
9611 | 90 |
91 final ListGridField removeField = PanelHelper.createRemoveField(this.elements, GWT.getHostPageBaseURL() + this.MSG.removeFeature()); | |
92 this.elements.addRecordClickHandler(new RecordClickHandler() { // adding another custom record-Remove-Handler which is not included in the | |
93 @Override | |
94 public void onRecordClick(final RecordClickEvent event) { | |
95 if (event.getField().getName().equals(removeField.getName())) { | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
96 final ListGridRecord r = event.getRecord(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
97 final Element infrastr = new Element(r.getAttribute("group_id"), r.getAttribute("group_label"), r.getAttribute("type_id"), |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
98 r.getAttribute("type_label")); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
99 FloodInfrastructurePanel.this.xchangeHelper.removeObject(infrastr); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
100 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
101 validateInput(); |
9611 | 102 } |
103 } | |
104 }); | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
105 this.elements.setFields(groupIdField, groupField, typeIdField, typeField, removeField); |
9611 | 106 |
107 root.setWidth(width); | |
108 root.addMember(title); | |
109 root.addMember(this.elements); | |
110 root.addMember(PanelHelper.getSpacer(3)); | |
111 root.addMember(PanelHelper.getSpacer(3)); | |
112 return this.elements; | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
113 } |
9611 | 114 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
115 private ListGridField createField(final String id, final String label) { |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
116 final ListGridField field = new ListGridField(id, label);// this.MSG.uinfo_vegetation_zones_label()); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
117 field.setType(ListGridFieldType.TEXT); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
118 field.setWidth("*"); // 245 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
119 field.setCanSort(false); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
120 field.setCanDragResize(true); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
121 field.setCanEdit(false); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
122 return field; |
9611 | 123 } |
124 | |
125 @Override | |
126 public final VLayout create(final DataList data) { | |
127 final VLayout layout = new VLayout(); | |
128 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
129 final List<Data> items = data.getAll(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
130 final Data str = getData(items, datakey); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
131 final DataItem[] strItems = str.getItems(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
132 if (strItems.length > 0) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
133 this.xchangeHelper.parseAndAdd(strItems[0].getStringValue()); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
134 |
9611 | 135 final Canvas helper = createHelper(data); |
136 if (helper != null) | |
137 this.helperContainer.addMember(helper); | |
138 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
139 this.submit = (Button) getNextButton(); |
9611 | 140 |
141 final VLayout root = new VLayout(); | |
142 root.setWidth(450); | |
143 createWidget(root, data); | |
144 | |
145 layout.addMember(root); | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
146 layout.addMember(this.submit); |
9611 | 147 |
148 return layout; | |
149 } | |
150 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
151 private void validateInput() { |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
152 if (this.xchangeHelper.getItems().size() > 0) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
153 this.submit.enable(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
154 else |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
155 this.submit.disable(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
156 } |
9611 | 157 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
158 private Canvas createHelper(final DataList dataList) { |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
159 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
160 final DatacageWidgetData data = new DatacageWidgetData(this.artifact, this.m_user, "sinfo_floodduration_infrastructures", "load-system:true", false); |
9611 | 161 |
162 final DatacageWidget datacage = new DatacageWidget(data); | |
163 | |
164 final Button plusBtn = new Button("Hinzufügen"); // this.MSG.uinfo_inundation_duration_set_vegetation_zone() | |
165 plusBtn.addClickHandler(new ClickHandler() { | |
166 @Override | |
167 public void onClick(final ClickEvent event) { | |
168 handlePlusClicked(datacage); | |
169 } | |
170 }); | |
171 | |
172 final VLayout helperLayout = new VLayout(); | |
173 helperLayout.addMember(datacage); | |
174 helperLayout.addMember(plusBtn); | |
175 | |
176 return helperLayout; | |
177 } | |
178 | |
179 private void handlePlusClicked(final DatacageWidget datacage) { | |
180 final List<TreeNode> selection = datacage.getPlainSelection(); | |
181 if (selection == null || selection.isEmpty()) { | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
182 SC.say(FloodInfrastructurePanel.this.MSG.warning()); |
9611 | 183 return; |
184 } | |
185 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
186 for (final TreeNode selectedNode : selection) { |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
187 final String groupId = selectedNode.getAttribute("group_id"); // node-names from meta-data.xml |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
188 final String groupLabel = selectedNode.getAttribute("group_label"); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
189 final String typeId = selectedNode.getAttribute("type_id"); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
190 final String typeLabel = selectedNode.getAttribute("type_label"); |
9611 | 191 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
192 if (isEmpty(groupId) || isEmpty(groupLabel) || isEmpty(typeId) || isEmpty(typeLabel)) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
193 continue; |
9611 | 194 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
195 final InfrastructureServerClientXChange.Element infrastr = new InfrastructureServerClientXChange.Element(groupId, groupLabel, typeId, typeLabel); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
196 if (this.xchangeHelper.containsObject(infrastr)) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
197 continue; |
9611 | 198 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
199 this.xchangeHelper.addObject(infrastr); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
200 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
201 this.elements.addData(createEntry(infrastr)); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
202 } |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
203 validateInput(); |
9611 | 204 } |
205 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
206 private boolean isEmpty(final String test) { |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
207 if (test == null) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
208 return true; |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
209 if (test.trim().equals("")) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
210 return true; |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
211 return false; |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
212 } |
9611 | 213 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
214 public final ListGridRecord createEntry(final InfrastructureServerClientXChange.Element row) { |
9611 | 215 final ListGridRecord r = new ListGridRecord(); |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
216 r.setAttribute("group_id", row.getGroupId()); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
217 r.setAttribute("group_label", row.getGroupLabel()); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
218 r.setAttribute("type_id", row.getTypeId()); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
219 r.setAttribute("type_label", row.getTypeLabel()); |
9611 | 220 return r; |
221 } | |
222 | |
223 public void createWidget(final Layout root, final DataList data) { | |
224 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
225 this.elements = createTable(root, data, "420"); |
9611 | 226 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
227 for (final Element item : this.xchangeHelper.getItems()) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
228 this.elements.addData(createEntry(item)); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
229 validateInput(); |
9611 | 230 } |
231 | |
232 @Override | |
233 public Canvas createOld(final DataList dataList) { | |
234 final HLayout layout = new HLayout(); | |
235 layout.setWidth("400px"); | |
236 final VLayout vLayout = new VLayout(); | |
237 vLayout.setWidth(130); | |
238 final Label label = new Label(dataList.getLabel()); | |
239 label.setWidth("200px"); | |
240 label.setHeight("25px"); | |
241 | |
242 final List<Data> items = dataList.getAll(); | |
243 final Data str = getData(items, datakey); | |
244 final DataItem[] strItems = str.getItems(); | |
245 | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
246 final List<Element> items1 = InfrastructureServerClientXChange.parse(strItems[0].getStringValue()); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
247 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
248 final StringBuilder builder = new StringBuilder(); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
249 |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
250 for (final Element infrastr : items1) { |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
251 builder.append(infrastr.getGroupLabel()).append(" - ").append(infrastr.getTypeLabel()).append("; "); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
252 } |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
253 if (builder.length() > 1) |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
254 builder.deleteCharAt(builder.length() - 2); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
255 else |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
256 builder.append(" - keine Auswahl - (will never appear because the workflow is being disabled when the table is empty) "); |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
257 final Label dateLabel = new Label(builder.toString()); |
9611 | 258 dateLabel.setHeight("20px"); |
259 vLayout.addMember(dateLabel); | |
260 | |
261 final Canvas back = getBackButton(dataList.getState()); | |
262 layout.addMember(label); | |
263 layout.addMember(vLayout); | |
264 layout.addMember(back); | |
265 | |
266 return layout; | |
267 } | |
268 | |
269 @Override | |
270 protected final Data[] getData() { | |
271 final List<Data> data = new ArrayList<Data>(); | |
272 | |
273 final ListGridRecord[] lgr = this.elements.getRecords(); | |
274 if (lgr.length == 0) { | |
275 } | |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
276 final String dataStr = this.xchangeHelper.parseListToDataString(); |
9611 | 277 |
9624
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
278 final DataItem item = new DefaultDataItem(datakey, null, |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
279 dataStr.equals("") ? "Non-Empty Value -> createOld would be called (not necessary, because workflow is disabled when table is empty)" |
02ca823ec9c6
zu Pos 20 Nachtrag; infrastructureChoice
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9611
diff
changeset
|
280 : dataStr); |
9611 | 281 data.add(new DefaultData(datakey, null, null, new DataItem[] { item })); |
282 return data.toArray(new Data[data.size()]); | |
283 } | |
284 | |
285 } |