annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java @ 1352:01b18db3b288

In WDiff datacage input make names survive backjumps. flys-client/trunk@3027 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 19 Oct 2011 11:08:03 +0000
parents 46a4b74d87bf
children 9da7fdfbb80e
rev   line source
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
3 import java.util.ArrayList;
1273
6ec804500621 Avoid duplicate clones in w-diff branch by using a set instead of a list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1266
diff changeset
4 import java.util.List;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
5 import java.util.Map;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
6 import java.util.Set;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
7
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8 import com.google.gwt.core.client.GWT;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
9 import com.google.gwt.user.client.rpc.AsyncCallback;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
11 import com.smartgwt.client.data.Record;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
12 import com.smartgwt.client.types.ListGridFieldType;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.Canvas;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.layout.HLayout;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.layout.VLayout;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
16 import com.smartgwt.client.widgets.grid.ListGrid;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
17 import com.smartgwt.client.widgets.grid.ListGridField;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
18 import com.smartgwt.client.widgets.grid.ListGridRecord;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
19 import com.smartgwt.client.widgets.events.ClickEvent;
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
20 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
21 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
23 import de.intevation.flys.client.shared.model.Artifact;
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
24 import de.intevation.flys.client.shared.model.Collection;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.shared.model.Data;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import de.intevation.flys.client.shared.model.DataItem;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 import de.intevation.flys.client.shared.model.DefaultData;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28 import de.intevation.flys.client.shared.model.DefaultDataItem;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 import de.intevation.flys.client.shared.model.DataList;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 import de.intevation.flys.client.shared.model.User;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 import de.intevation.flys.client.client.FLYSConstants;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
33 import de.intevation.flys.client.client.event.StepForwardEvent;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
34 import de.intevation.flys.client.shared.model.Recommendation;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
35 import de.intevation.flys.client.shared.model.Recommendation.Facet;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
36 import de.intevation.flys.client.shared.model.Recommendation.Filter;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
37
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
38 import de.intevation.flys.client.client.Config;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
39 import de.intevation.flys.client.client.services.LoadArtifactService;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
40 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
41 import de.intevation.flys.client.client.services.RemoveArtifactService;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
42 import de.intevation.flys.client.client.services.RemoveArtifactServiceAsync;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 // TODO Probably better to branch off AbstractUIProvider.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
45 // TODO Merge with other datacage-widget impls.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
46 /**
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
47 * Panel containing a Grid and a "next" button. The Grid is fed by a
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
48 * DatacagePairWidget which is put in the input-helper area.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
49 */
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
50 public class DatacageTwinPanel
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
51 extends TextProvider {
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 protected static FLYSConstants MSG = GWT.create(FLYSConstants.class);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 protected String dataName;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 protected User user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
59 /** ListGrid that displays user-selected pairs to build differences with. */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
60 protected ListGrid differencesList;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
61
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
62 /*
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
63 * List to track previously selected but now removed pairs. (Needed to
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
64 * be able to identify artifacts that can be removed from the collection.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
65 */
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
66 protected List<RecommendationPairRecord> removedPairs =
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
67 new ArrayList<RecommendationPairRecord>();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
68
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
69 /** Service handle to clone and add artifacts to collection. */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
70 LoadArtifactServiceAsync loadArtifactService = GWT.create(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
71 de.intevation.flys.client.client.services.LoadArtifactService.class);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
72
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
73 /** Service to remove artifacts from collection. */
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
74 RemoveArtifactServiceAsync removeArtifactService = GWT.create(
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
75 de.intevation.flys.client.client.services.RemoveArtifactService.class);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
77
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 public DatacageTwinPanel(User user) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 super();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 this.user = user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
84 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
85 * Remove first occurrence of "[" and "]" (if both do occur).
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
86 * @param value String to be stripped of [] (might be null).
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
87 * @return input string but with [ and ] removed, or input string if no
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
88 * brackets were found.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
89 * @see StringUtil.unbracket
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
90 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
91 public static final String unbracket(String value) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
92 // null- guard.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
93 if (value == null) return value;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
94
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
95 int start = value.indexOf("[");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
96 int end = value.indexOf("]");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
97
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
98 if (start < 0 || end < 0) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
99 return value;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
100 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
101
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
102 value = value.substring(start + 1, end);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
103
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
104 return value;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
105 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
106
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
107
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
108 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
109 * Create a recommendation from a string representation of it.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
110 * @TODO describe format of input string
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
111 * @param from string in format as shown above.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
112 * @return recommendation from input string.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
113 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
114 public Recommendation createRecommendationFromString(String from) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
115 // TODO Construct "real" filter.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
116 String[] parts = unbracket(from).split(";");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
117 Recommendation.Filter filter = new Recommendation.Filter();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
118 Recommendation.Facet facet = new Recommendation.Facet(
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
119 parts[1],
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
120 parts[2]);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
121
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
122 List<Recommendation.Facet> facets = new ArrayList<Recommendation.Facet>
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
123 ();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
124 facets.add(facet);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
125 filter.add("longitudinal_section", facets);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
126 Recommendation r = new Recommendation("waterlevel", parts[0],
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
127 this.artifact.getUuid(), filter);
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
128 r.setDisplayName(parts[3]);
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
129 return r;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
130 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
131
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
132
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
133 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
134 * Add RecomendationPairRecords from input String to the ListGrid.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
135 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
136 public void populateGridFromString(String from){
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
137 // Split this string.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
138 // Create according recommendations and display strings.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
139 String[] recs = from.split("#");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
140 // TODO real name
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
141 if (recs.length % 2 != 0) return;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
142 for (int i = 0; i < recs.length; i+=2) {
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
143 Recommendation minuend =
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
144 createRecommendationFromString(recs[i+0]);
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
145 Recommendation subtrahend =
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
146 createRecommendationFromString(recs[i+1]);
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
147 //minuend.setDisplayName("hum"); subtrahend.setDisplayName("wim");
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
148 RecommendationPairRecord pr = new RecommendationPairRecord(
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
149 minuend, subtrahend);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
150 // This Recommendation Pair comes from the data string and was thus
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
151 // already cloned.
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
152 pr.setIsAlreadyLoaded(true);
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
153 this.differencesList.addData(pr);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
154 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
155 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
156
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
157
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
158 /**
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
159 * Creates the graphical representation and interaction widgets for the data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
160 * @param dataList the data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
161 * @return graphical representation and interaction widgets for data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
162 */
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163 @Override
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164 public Canvas create(DataList dataList) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 GWT.log("createData()");
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
167 Canvas widget = createWidget();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
168 Canvas submit = getNextButton();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
169
1273
6ec804500621 Avoid duplicate clones in w-diff branch by using a set instead of a list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1266
diff changeset
170 VLayout layout = new VLayout();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
171 HLayout helperLayout = new HLayout();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
172 helperLayout.addMember(new DatacagePairWidget(this.artifact,
1308
d194bee456d3 Show only Ws in datacage for w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1307
diff changeset
173 user, "waterlevels", differencesList));
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 layout.addMember(widget);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176 layout.addMember(submit);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 layout.setMembersMargin(10);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
178 this.helperContainer.addMember(helperLayout);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
180 // Find old data, if any, handle "diffids".
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
181 Data data = dataList.get(0);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
182 this.dataName = data.getLabel();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
183 for (int i = 0; i < dataList.size(); i++) {
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
184 if (dataList.get(i) != null && dataList.get(i).getItems() != null) {
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
185 if (dataList.get(i).getItems() != null) {
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
186 populateGridFromString(
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
187 dataList.get(i).getItems()[0].getStringValue());
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
188 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
189 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
190 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
191
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 return layout;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
195
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
196 /**
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
197 * Validates the selection.
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
198 * @return List of internationalized errror messages (if any).
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
199 */
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
201 public List<String> validate() {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
202 List<String> errors = new ArrayList<String>();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
203 if (differencesList.getRecords().length == 0) {
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
204 errors.add(MSG.error_no_waterlevel_pair_selected());
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
205 }
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
206 // Check whether minuend and subtrahend are equal.
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
207 for (ListGridRecord record: differencesList.getRecords()) {
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
208 RecommendationPairRecord r = (RecommendationPairRecord) record;
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
209 if (r.getFirst().equals(r.getSecond())) {
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
210 errors.add(MSG.error_same_waterlevels_in_pair());
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
211 }
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
212 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
213
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
214 return errors;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
215 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
216
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
217
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
218 /**
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
219 * Creates layout with grid that displays selection inside.
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
220 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
221 public Canvas createWidget() {
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
222 VLayout layout = new VLayout();
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
223 differencesList = new ListGrid();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
224
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
225 differencesList.setCanEdit(false);
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
226 differencesList.setCanSort(false);
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
227 differencesList.setShowHeaderContextMenu(false);
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
228 differencesList.setHeight(150);
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
229 differencesList.setShowAllRecords(true);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
230
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
231 ListGridField nameField = new ListGridField("first", "Minuend");
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
232 ListGridField capitalField = new ListGridField("second", "Subtrahend");
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
233 // Track removed rows, therefore more or less reimplement
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
234 // setCanRecomeRecords.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
235 final ListGridField removeField =
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
236 new ListGridField("_removeRecord", "Remove Record"){{
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
237 setType(ListGridFieldType.ICON);
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
238 // TODO evaluate which icon to use (and how).
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
239 //setIcon("images/removeFeature.png");
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
240 setIcon("[SKIN]/actions/remove.png");
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
241 setCanEdit(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
242 setCanFilter(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
243 setCanSort(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
244 setCanGroupBy(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
245 setCanFreeze(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
246 setWidth(25);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
247 }};
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
248
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
249 differencesList.setFields(new ListGridField[] {nameField,
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
250 capitalField, removeField});
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
251
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
252 differencesList.addRecordClickHandler(new RecordClickHandler() {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
253 public void onRecordClick(final RecordClickEvent event) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
254 // Just handle remove-clicks
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
255 if(!event.getField().getName().equals(removeField.getName())) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
256 return;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
257 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
258 trackRemoved(event.getRecord());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
259 event.getViewer().removeData(event.getRecord());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
260 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
261 });
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
262 layout.addMember(differencesList);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
263
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
264 return layout;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
265 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
266
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
267
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
268 /**
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
269 * Add record to list of removed records.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
270 */
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
271 public void trackRemoved(Record r) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
272 RecommendationPairRecord pr = (RecommendationPairRecord) r;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
273 this.removedPairs.add(pr);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
274 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
275
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
276
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
277 /**
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
278 * Validates data, does nothing if invalid, otherwise clones new selected
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
279 * waterlevels and add them to collection, forward the artifact.
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
280 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
281 @Override
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
282 public void onClick(ClickEvent e) {
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
283 GWT.log("DatacageTwinPanel.onClick");
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
284
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
285 List<String> errors = validate();
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
286 if (errors != null && !errors.isEmpty()) {
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
287 showErrors(errors);
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
288 return;
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
289 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
290
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
291 Config config = Config.getInstance();
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
292 String url = config.getServerUrl();
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
293 String locale = config.getLocale();
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
294
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
295 ListGridRecord[] records = differencesList.getRecords();
1273
6ec804500621 Avoid duplicate clones in w-diff branch by using a set instead of a list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1266
diff changeset
296
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
297 List<Recommendation> ar = new ArrayList<Recommendation>();
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
298 List<Recommendation> all = new ArrayList<Recommendation>();
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
299
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
300 for (ListGridRecord record : records) {
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
301 RecommendationPairRecord r =
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
302 (RecommendationPairRecord) record;
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
303 // Do not add "old" recommendations.
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
304 if (!r.isAlreadyLoaded()) {
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
305 // Check whether one of those is a dike or similar.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
306 // TODO differentiate and merge: new clones, new, old.
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
307 Recommendation firstR = r.getFirst();
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
308 if(firstR.getIDs() != null) {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
309 GWT.log("First IDs: " + firstR.getIDs());
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
310 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
311 // TODO resolve this hack, fix datacage/recommendation for this case.
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
312 if(firstR.getIDs() != null &&
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
313 firstR.getIDs().startsWith("flood_protection"))
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
314 {
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
315 // These do not get cloned but loaded ("spawned").
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
316 firstR.setFactory("staticwkms");
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
317 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
318 else {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
319 firstR.setFactory("waterlevel");
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
320 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
321 Recommendation secondR = r.getSecond();
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
322 if(secondR.getIDs() != null) {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
323 GWT.log("Second IDs: " + secondR.getIDs());
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
324 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
325 if(secondR.getIDs() != null
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
326 && secondR.getIDs().startsWith("flood_protection"))
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
327 {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
328 // These do not get cloned but loaded ("spawned").
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
329 secondR.setFactory("staticwkms");
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
330 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
331 else {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
332 secondR.setFactory("waterlevel");
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
333 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
334
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
335 ar.add(firstR);
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
336 ar.add(secondR);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
337 }
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
338 else {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
339 all.add(r.getFirst());
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
340 all.add(r.getSecond());
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
341 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
342 }
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
343
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
344 final Recommendation[] toClone = ar.toArray(new Recommendation[ar.size()]);
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
345 final Recommendation[] toUse = all.toArray(new Recommendation[all.size()]);
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
346
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
347 // Find out whether "old" artifacts have to be removed.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
348 List<String> artifactIdsToRemove = new ArrayList<String>();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
349 for (RecommendationPairRecord rp: this.removedPairs) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
350 Recommendation first = rp.getFirst();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
351 Recommendation second = rp.getSecond();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
352
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
353 for (Recommendation recommendation: toUse) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
354 if (first != null && first.getIDs().equals(recommendation.getIDs())) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
355 first = null;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
356 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
357 if (second != null && second.getIDs().equals(recommendation.getIDs())) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
358 second = null;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
359 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
360
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
361 if (first == null && second == null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
362 break;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
363 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
364 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
365 if (first != null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
366 artifactIdsToRemove.add(first.getIDs());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
367 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
368 if (second != null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
369 artifactIdsToRemove.add(second.getIDs());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
370 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
371 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
372
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
373 // Remove old artifacts, if any. Do this asychronously without much
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
374 // feedback.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
375 for(final String uuid: artifactIdsToRemove) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
376 removeArtifactService.remove(this.collection,
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
377 uuid,
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
378 url,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
379 locale,
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
380 new AsyncCallback<Collection>() {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
381 public void onFailure(Throwable caught) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
382 GWT.log("RemoveArtifact (" + uuid + ") failed.");
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
383 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
384 public void onSuccess(Collection collection) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
385 GWT.log("RemoveArtifact succeeded");
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
386 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
387 });
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
388 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
389
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
390 // Clone new ones (and spawn statics), go forward.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
391 loadArtifactService.loadMany(
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
392 this.collection,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
393 toClone,
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
394 //"staticwkms" and "waterlevel"
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
395 null,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
396 url,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
397 locale,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
398 new AsyncCallback<Artifact[]>() {
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
399 public void onFailure(Throwable caught) {
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
400 GWT.log("Failure of cloning with factories!");
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
401 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
402 public void onSuccess(Artifact[] artifacts) {
1305
014fc183c640 Fix 'incorrect minuend/subtrahend order' bug in wdiff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1304
diff changeset
403 GWT.log("Successfully cloned " + toClone.length +
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
404 " with factories.");
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
405
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
406 fireStepForwardEvent(new StepForwardEvent(
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
407 getData(toClone, artifacts, toUse)));
1273
6ec804500621 Avoid duplicate clones in w-diff branch by using a set instead of a list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1266
diff changeset
408 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
409 });
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
410 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
411
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
412
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
413 /**
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
414 * Create Data and DataItem from selection (a long string with identifiers
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
415 * to construct diff-pairs).
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
416 *
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
417 * @param newRecommendations "new" recommendations (did not survive a
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
418 * backjump).
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
419 * @param newArtifacts artifacts cloned from newRecommendations.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
420 * @param oldRecommendations old recommendations that survived a backjump.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
421 *
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
422 * @return dataitem with a long string with identifiers to construct
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
423 * diff-pairs.
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
424 */
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
425 protected Data[] getData(
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
426 Recommendation[] newRecommendations,
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
427 Artifact[] newArtifacts,
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
428 Recommendation[] oldRecommendations)
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
429 {
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
430 // Construct string with info about selections.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
431 String dataItemString = "";
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
432 for (int i = 0; i < newRecommendations.length; i++) {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
433 Recommendation r = newRecommendations[i];
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
434 Artifact newArtifact = newArtifacts[i];
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
435 String uuid = newArtifact.getUuid();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
436 r.setMasterArtifact(uuid);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
437 if (i>0) dataItemString += "#";
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
438
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
439 dataItemString += createDataString(uuid, r);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
440 }
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
441
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
442 for (int i = 0; i < oldRecommendations.length; i++) {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
443 Recommendation r = oldRecommendations[i];
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
444 String uuid = r.getIDs();
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
445 if (dataItemString.length() > 0) dataItemString += "#";
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
446
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
447 dataItemString += createDataString(uuid, r);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
448 }
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
449
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
450 // TODO some hassle could be resolved by using multiple DataItems
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
451 // (e.g. one per pair).
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
452 DataItem item = new DefaultDataItem(dataName, dataName, dataItemString);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
453 return new Data[] { new DefaultData(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
454 dataName, null, null, new DataItem[] {item}) };
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
455 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
456
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
457
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
458 /**
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
459 * Creates part of the String that encodes minuend or subtrahend.
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
460 */
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
461 protected String createDataString(
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
462 String artifact,
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
463 Recommendation recommendation)
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
464 {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
465 Filter filter = recommendation.getFilter();
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
466 Facet f = null;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
467
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
468 if(filter != null) {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
469 Map<String, List<Facet>> outs = filter.getOuts();
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
470 Set<Map.Entry<String, List<Facet>>> entries = outs.entrySet();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
471
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
472 for (Map.Entry<String, List<Facet>> entry: entries) {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
473 List<Facet> fs = entry.getValue();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
474
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
475 f = fs.get(0);
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
476 if (f != null) {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
477 break;
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
478 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
479 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
480
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
481 // Hell get the creepy name inside.
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
482 return "[" + artifact + ";" + f.getName() + ";" + f.getIndex() + ";" + recommendation.getDisplayName() + "]";
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
483 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
484 else {
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
485 return "[" + artifact + ";staticwkms;0;" + recommendation.getDisplayName() + "]";
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
486 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
487 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
488 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
489 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org