comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/BedHeightsDatacagePanel.java @ 7971:93da474506e7

Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 26 Jun 2014 14:59:28 +0200
parents b6ef2ce3fc62
children f7f86f4e4c8d
comparison
equal deleted inserted replaced
7970:d66ea32d98bc 7971:93da474506e7
12 12
13 import com.google.gwt.user.client.rpc.AsyncCallback; 13 import com.google.gwt.user.client.rpc.AsyncCallback;
14 14
15 import com.smartgwt.client.data.Record; 15 import com.smartgwt.client.data.Record;
16 16
17 import com.smartgwt.client.util.SC;
18 import com.smartgwt.client.widgets.Button;
17 import com.smartgwt.client.widgets.Canvas; 19 import com.smartgwt.client.widgets.Canvas;
18 20
19 import com.smartgwt.client.widgets.events.ClickEvent; 21 import com.smartgwt.client.widgets.events.ClickEvent;
20 22 import com.smartgwt.client.widgets.events.ClickHandler;
21 import com.smartgwt.client.widgets.grid.ListGridRecord; 23 import com.smartgwt.client.widgets.grid.ListGridRecord;
22 24
23 import com.smartgwt.client.widgets.layout.HLayout; 25 import com.smartgwt.client.widgets.layout.HLayout;
24 import com.smartgwt.client.widgets.layout.VLayout; 26 import com.smartgwt.client.widgets.layout.VLayout;
27 import com.smartgwt.client.widgets.tree.TreeNode;
25 28
26 import org.dive4elements.river.client.client.Config; 29 import org.dive4elements.river.client.client.Config;
27 import org.dive4elements.river.client.client.FLYSConstants; 30 import org.dive4elements.river.client.client.FLYSConstants;
28 31
29 import org.dive4elements.river.client.client.event.StepForwardEvent; 32 import org.dive4elements.river.client.client.event.StepForwardEvent;
33 import org.dive4elements.river.client.client.services.RemoveArtifactService; 36 import org.dive4elements.river.client.client.services.RemoveArtifactService;
34 import org.dive4elements.river.client.client.services.RemoveArtifactServiceAsync; 37 import org.dive4elements.river.client.client.services.RemoveArtifactServiceAsync;
35 38
36 import org.dive4elements.river.client.client.ui.DatacagePairWidget; 39 import org.dive4elements.river.client.client.ui.DatacagePairWidget;
37 import org.dive4elements.river.client.client.ui.DatacageTwinPanel; 40 import org.dive4elements.river.client.client.ui.DatacageTwinPanel;
41 import org.dive4elements.river.client.client.ui.DatacageWidget;
38 import org.dive4elements.river.client.client.ui.RecommendationPairRecord; 42 import org.dive4elements.river.client.client.ui.RecommendationPairRecord;
39 43
40 import org.dive4elements.river.client.shared.model.Artifact; 44 import org.dive4elements.river.client.shared.model.Artifact;
41 import org.dive4elements.river.client.shared.model.Collection; 45 import org.dive4elements.river.client.shared.model.Collection;
42 import org.dive4elements.river.client.shared.model.Data; 46 import org.dive4elements.river.client.shared.model.Data;
43 import org.dive4elements.river.client.shared.model.DataItem; 47 import org.dive4elements.river.client.shared.model.DataItem;
44 import org.dive4elements.river.client.shared.model.DataList; 48 import org.dive4elements.river.client.shared.model.DataList;
49 import org.dive4elements.river.client.shared.model.ToLoad;
45 50
46 import org.dive4elements.river.client.shared.model.Recommendation.Facet; 51 import org.dive4elements.river.client.shared.model.Recommendation.Facet;
47 import org.dive4elements.river.client.shared.model.Recommendation.Filter; 52 import org.dive4elements.river.client.shared.model.Recommendation.Filter;
48 53
49 import org.dive4elements.river.client.shared.model.Recommendation; 54 import org.dive4elements.river.client.shared.model.Recommendation;
78 83
79 /** Service to remove artifacts from collection. */ 84 /** Service to remove artifacts from collection. */
80 RemoveArtifactServiceAsync removeArtifactService = GWT.create( 85 RemoveArtifactServiceAsync removeArtifactService = GWT.create(
81 org.dive4elements.river.client.client.services.RemoveArtifactService.class); 86 org.dive4elements.river.client.client.services.RemoveArtifactService.class);
82 87
88 protected DatacageWidget datacage;
83 89
84 public BedHeightsDatacagePanel(User user) { 90 public BedHeightsDatacagePanel(User user) {
85 super(user); 91 super(user);
86 } 92 }
87 93
118 */ 124 */
119 @Override 125 @Override
120 public Canvas create(DataList dataList) { 126 public Canvas create(DataList dataList) {
121 GWT.log("createData()"); 127 GWT.log("createData()");
122 128
123 String filter = "minfo-heights"; 129 String filter = "minfo-heights-diff";
124 Canvas widget = createWidget(); 130 Canvas widget = createWidget();
125 Canvas submit = getNextButton(); 131 Canvas submit = getNextButton();
132 datacage = new DatacageWidget(
133 this.artifact, user, filter, "load-system:true", false);
134
135 Button plusBtn = new Button(MSG.datacage_add_pair());
136 plusBtn.setAutoFit(true);
137 plusBtn.addClickHandler(new ClickHandler() {
138 @Override
139 public void onClick(ClickEvent event) {
140 plusClicked();
141 }
142 });
126 143
127 VLayout layout = new VLayout(); 144 VLayout layout = new VLayout();
128 HLayout helperLayout = new HLayout(); 145 VLayout helperLayout = new VLayout();
129 helperLayout.addMember(new DatacagePairWidget(this.artifact, 146 helperLayout.addMember(datacage);
130 user, filter, differencesList)); 147 helperLayout.addMember(plusBtn);
131 148
132 layout.addMember(widget); 149 layout.addMember(widget);
133 layout.addMember(submit); 150 layout.addMember(submit);
134 layout.setMembersMargin(10); 151 layout.setMembersMargin(10);
135 this.helperContainer.addMember(helperLayout); 152 this.helperContainer.addMember(helperLayout);
304 + artifact 321 + artifact
305 + ";bedheight;0;" 322 + ";bedheight;0;"
306 + recommendation.getDisplayName() + "]"; 323 + recommendation.getDisplayName() + "]";
307 } 324 }
308 } 325 }
326
327 /**
328 * Callback for add-button.
329 * Fires to load for every selected element and handler.
330 */
331 public void plusClicked() {
332 List<TreeNode> selection = datacage.getPlainSelection();
333
334 if (selection == null || selection.isEmpty()) {
335 SC.say(MSG.warning());
336 return;
337 }
338
339 for (TreeNode node : selection) {
340 ToLoad toLoad1 = new ToLoad();
341 ToLoad toLoad2 = new ToLoad();
342
343 String factory = node.getAttribute("factory");
344 if (factory != null) { // we need at least a factory
345 String artifact = node.getAttribute("artifact-id");
346 String out = node.getAttribute("out");
347 String name = node.getAttribute("facet");
348 String ids = node.getAttribute("ids");
349 String info = node.getAttribute("info");
350 String targetOut = node.getAttribute("target_out");
351
352 String[] splitIds = ids.split("#");
353 String[] splitInfo = info.split("#");
354 toLoad1.add(artifact,
355 factory,
356 out,
357 name,
358 splitIds[0],
359 splitInfo[0],
360 targetOut);
361 toLoad2.add(artifact,
362 factory,
363 out,
364 name,
365 splitIds[1],
366 splitInfo[1],
367 targetOut);
368 }
369 differencesList.addData(new RecommendationPairRecord(
370 toLoad1.toRecommendations().get(0),
371 toLoad2.toRecommendations().get(0)));
372 }
373 }
309 } 374 }
310 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 375 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org