annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/BedHeightsDatacagePanel.java @ 8023:f7f86f4e4c8d

Removed obsolete imports.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 09 Jul 2014 17:10:18 +0200
parents 93da474506e7
children 5dfb3ff98bc6
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui.minfo;
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
11 import com.google.gwt.core.client.GWT;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
12
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
13 import com.google.gwt.user.client.rpc.AsyncCallback;
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
14
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
15 import com.smartgwt.client.data.Record;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
16
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
17 import com.smartgwt.client.util.SC;
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
18 import com.smartgwt.client.widgets.Button;
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
19 import com.smartgwt.client.widgets.Canvas;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
20
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
21 import com.smartgwt.client.widgets.events.ClickEvent;
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
22 import com.smartgwt.client.widgets.events.ClickHandler;
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
23 import com.smartgwt.client.widgets.grid.ListGridRecord;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
24
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
25 import com.smartgwt.client.widgets.layout.VLayout;
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
26 import com.smartgwt.client.widgets.tree.TreeNode;
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
27
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 import org.dive4elements.river.client.client.Config;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
29 import org.dive4elements.river.client.client.FLYSConstants;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
30
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
31 import org.dive4elements.river.client.client.event.StepForwardEvent;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
32
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
33 import org.dive4elements.river.client.client.services.LoadArtifactService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
34 import org.dive4elements.river.client.client.services.LoadArtifactServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.client.services.RemoveArtifactService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
36 import org.dive4elements.river.client.client.services.RemoveArtifactServiceAsync;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
37
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.client.ui.DatacageTwinPanel;
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
39 import org.dive4elements.river.client.client.ui.DatacageWidget;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.client.ui.RecommendationPairRecord;
4183
Christian Lins <christian.lins@intevation.de>
parents: 4182
diff changeset
41
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
42 import org.dive4elements.river.client.shared.model.Artifact;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
43 import org.dive4elements.river.client.shared.model.Collection;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
44 import org.dive4elements.river.client.shared.model.DataList;
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
45 import org.dive4elements.river.client.shared.model.ToLoad;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
46
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
47 import org.dive4elements.river.client.shared.model.Recommendation.Facet;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
48 import org.dive4elements.river.client.shared.model.Recommendation.Filter;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
49
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
50 import org.dive4elements.river.client.shared.model.Recommendation;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
51 import org.dive4elements.river.client.shared.model.User;
3535
75a3a41a6e51 Removed superfluous imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3508
diff changeset
52
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 import java.util.ArrayList;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 import java.util.List;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 import java.util.Map;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 import java.util.Set;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 // TODO Probably better to branch off AbstractUIProvider.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 // TODO Merge with other datacage-widget impls.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 * Panel containing a Grid and a "next" button. The Grid is fed by a
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 * DatacagePairWidget which is put in the input-helper area.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 public class BedHeightsDatacagePanel
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 extends DatacageTwinPanel {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 protected static FLYSConstants MSG = GWT.create(FLYSConstants.class);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 * List to track previously selected but now removed pairs. (Needed to
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 * be able to identify artifacts that can be removed from the collection.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 protected List<RecommendationPairRecord> removedPairs =
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 new ArrayList<RecommendationPairRecord>();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 /** Service handle to clone and add artifacts to collection. */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 LoadArtifactServiceAsync loadArtifactService = GWT.create(
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
78 org.dive4elements.river.client.client.services.LoadArtifactService.class);
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 /** Service to remove artifacts from collection. */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 RemoveArtifactServiceAsync removeArtifactService = GWT.create(
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
82 org.dive4elements.river.client.client.services.RemoveArtifactService.class);
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
84 protected DatacageWidget datacage;
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 public BedHeightsDatacagePanel(User user) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 super(user);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 * Create a recommendation from a string representation of it.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 * @TODO describe format of input string
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 * @param from string in format as shown above.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 * @return recommendation from input string.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 public Recommendation createRecommendationFromString(String from) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 // TODO Construct "real" filter.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 String[] parts = unbracket(from).split(";");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 Recommendation.Filter filter = new Recommendation.Filter();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 Recommendation.Facet facet = new Recommendation.Facet(
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 parts[1],
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 parts[2]);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 List<Recommendation.Facet> facets = new ArrayList<Recommendation.Facet>
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 ();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 facets.add(facet);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 filter.add("longitudinal_section", facets);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 Recommendation r = new Recommendation("bedheight", parts[0],
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 this.artifact.getUuid(), filter);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 r.setDisplayName(parts[3]);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 return r;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 * Creates the graphical representation and interaction widgets for the data.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 * @param dataList the data.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 * @return graphical representation and interaction widgets for data.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 @Override
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 public Canvas create(DataList dataList) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 GWT.log("createData()");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
125 String filter = "minfo-heights-diff";
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 Canvas widget = createWidget();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 Canvas submit = getNextButton();
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
128 datacage = new DatacageWidget(
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
129 this.artifact, user, filter, "load-system:true", false);
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
130
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
131 Button plusBtn = new Button(MSG.datacage_add_pair());
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
132 plusBtn.setAutoFit(true);
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
133 plusBtn.addClickHandler(new ClickHandler() {
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
134 @Override
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
135 public void onClick(ClickEvent event) {
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
136 plusClicked();
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
137 }
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
138 });
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 VLayout layout = new VLayout();
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
141 VLayout helperLayout = new VLayout();
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
142 helperLayout.addMember(datacage);
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
143 helperLayout.addMember(plusBtn);
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 layout.addMember(widget);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 layout.addMember(submit);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 layout.setMembersMargin(10);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 this.helperContainer.addMember(helperLayout);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 this.dataName = "diffids";
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 return layout;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 * Add record to list of removed records.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 public void trackRemoved(Record r) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 RecommendationPairRecord pr = (RecommendationPairRecord) r;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 this.removedPairs.add(pr);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 * Validates data, does nothing if invalid, otherwise clones new selected
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 * waterlevels and add them to collection, forward the artifact.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 @Override
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170 public void onClick(ClickEvent e) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 GWT.log("DatacageTwinPanel.onClick");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173 List<String> errors = validate();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174 if (errors != null && !errors.isEmpty()) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 showErrors(errors);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176 return;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 Config config = Config.getInstance();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 String locale = config.getLocale();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 ListGridRecord[] records = differencesList.getRecords();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 List<Recommendation> ar = new ArrayList<Recommendation>();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 List<Recommendation> all = new ArrayList<Recommendation>();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 for (ListGridRecord record : records) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 RecommendationPairRecord r =
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 (RecommendationPairRecord) record;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 // Do not add "old" recommendations.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 if (!r.isAlreadyLoaded()) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 // Check whether one of those is a dike or similar.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193 // TODO differentiate and merge: new clones, new, old.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 Recommendation firstR = r.getFirst();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 if(firstR.getIDs() != null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 GWT.log("First IDs: " + firstR.getIDs() + " factory: "
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 + firstR.getFactory());
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199 firstR.setFactory("bedheight");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200 Recommendation secondR = r.getSecond();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201 if(secondR.getIDs() != null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 GWT.log("Second IDs: " + secondR.getIDs() + " factory: "
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 + secondR.getFactory());
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 secondR.setFactory("bedheight");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207 ar.add(firstR);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
208 ar.add(secondR);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
209 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210 else {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 all.add(r.getFirst());
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212 all.add(r.getSecond());
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 final Recommendation[] toClone = ar.toArray(new Recommendation[ar.size()]);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 final Recommendation[] toUse = all.toArray(new Recommendation[all.size()]);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 // Find out whether "old" artifacts have to be removed.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220 List<String> artifactIdsToRemove = new ArrayList<String>();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
221 for (RecommendationPairRecord rp: this.removedPairs) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222 Recommendation first = rp.getFirst();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
223 Recommendation second = rp.getSecond();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 for (Recommendation recommendation: toUse) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 if (first != null && first.getIDs().equals(recommendation.getIDs())) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227 first = null;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 if (second != null && second.getIDs().equals(recommendation.getIDs())) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 second = null;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 if (first == null && second == null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 break;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 if (first != null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
238 artifactIdsToRemove.add(first.getIDs());
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
240 if (second != null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 artifactIdsToRemove.add(second.getIDs());
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
242 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
243 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
244
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
245 // Remove old artifacts, if any. Do this asychronously without much
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
246 // feedback.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
247 for(final String uuid: artifactIdsToRemove) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
248 removeArtifactService.remove(this.collection,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
249 uuid,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250 locale,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251 new AsyncCallback<Collection>() {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
252 public void onFailure(Throwable caught) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
253 GWT.log("RemoveArtifact (" + uuid + ") failed.");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
254 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255 public void onSuccess(Collection collection) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256 GWT.log("RemoveArtifact succeeded");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
257 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
258 });
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
261 // Clone new ones (and spawn statics), go forward.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
262 loadArtifactService.loadMany(
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
263 this.collection,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
264 toClone,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
265 //"staticwkms" and "waterlevel"
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 null,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
267 locale,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
268 new AsyncCallback<Artifact[]>() {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
269 public void onFailure(Throwable caught) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 GWT.log("Failure of cloning with factories!");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
271 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272 public void onSuccess(Artifact[] artifacts) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 GWT.log("Successfully cloned " + toClone.length +
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
274 " with factories.");
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 fireStepForwardEvent(new StepForwardEvent(
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277 getData(toClone, artifacts, toUse)));
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 });
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 /**
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284 * Creates part of the String that encodes minuend or subtrahend.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285 * @param artifact Artifacts UUID.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 * @param recommendation Recommendation to wrap in string.
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287 */
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288 protected String createDataString(
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
289 String artifact,
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
290 Recommendation recommendation)
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
291 {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
292 Filter filter = recommendation.getFilter();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
293 Facet f = null;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
294
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
295 if(filter != null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
296 Map<String, List<Facet>> outs = filter.getOuts();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
297 Set<Map.Entry<String, List<Facet>>> entries = outs.entrySet();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
298
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
299 for (Map.Entry<String, List<Facet>> entry: entries) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
300 List<Facet> fs = entry.getValue();
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
301
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
302 f = fs.get(0);
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
303 if (f != null) {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
304 break;
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
305 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
306 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
307
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
308 return "[" + artifact + ";"
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
309 + f.getName()
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
310 + ";"
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
311 + f.getIndex()
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
312 + ";"
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
313 + recommendation.getDisplayName() + "]";
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
314 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
315 else {
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
316 return "["
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
317 + artifact
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
318 + ";bedheight;0;"
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
319 + recommendation.getDisplayName() + "]";
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
320 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
321 }
7971
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
322
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
323 /**
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
324 * Callback for add-button.
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
325 * Fires to load for every selected element and handler.
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
326 */
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
327 public void plusClicked() {
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
328 List<TreeNode> selection = datacage.getPlainSelection();
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
329
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
330 if (selection == null || selection.isEmpty()) {
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
331 SC.say(MSG.warning());
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
332 return;
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
333 }
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
334
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
335 for (TreeNode node : selection) {
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
336 ToLoad toLoad1 = new ToLoad();
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
337 ToLoad toLoad2 = new ToLoad();
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
338
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
339 String factory = node.getAttribute("factory");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
340 if (factory != null) { // we need at least a factory
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
341 String artifact = node.getAttribute("artifact-id");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
342 String out = node.getAttribute("out");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
343 String name = node.getAttribute("facet");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
344 String ids = node.getAttribute("ids");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
345 String info = node.getAttribute("info");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
346 String targetOut = node.getAttribute("target_out");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
347
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
348 String[] splitIds = ids.split("#");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
349 String[] splitInfo = info.split("#");
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
350 toLoad1.add(artifact,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
351 factory,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
352 out,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
353 name,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
354 splitIds[0],
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
355 splitInfo[0],
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
356 targetOut);
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
357 toLoad2.add(artifact,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
358 factory,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
359 out,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
360 name,
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
361 splitIds[1],
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
362 splitInfo[1],
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
363 targetOut);
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
364 }
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
365 differencesList.addData(new RecommendationPairRecord(
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
366 toLoad1.toRecommendations().get(0),
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
367 toLoad2.toRecommendations().get(0)));
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
368 }
93da474506e7 Changed twin dc panel in bed height deifferences to single dc and use the new differences dc macro.
Raimund Renkert <rrenkert@intevation.de>
parents: 7921
diff changeset
369 }
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
370 }
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
371 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org