annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java @ 4215:c179cd02177d

Logout the current user Add code to the logout button to remove the current user from the session and to redirect the browser window to the login page. Part of flys/issue916 (Logout: "Abmelden" Knopf mit Funktion belegen)
author Björn Ricks <bjoern.ricks@intevation.de>
date Tue, 23 Oct 2012 09:59:16 +0200
parents 360e22afb98b
children
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
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
4 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
5
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
6 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
7 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
8 import com.smartgwt.client.widgets.Canvas;
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
9 import com.smartgwt.client.widgets.events.ClickEvent;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
10 import com.smartgwt.client.widgets.grid.ListGrid;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
11 import com.smartgwt.client.widgets.grid.ListGridField;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
12 import com.smartgwt.client.widgets.grid.ListGridRecord;
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
13 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
14 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
15 import com.smartgwt.client.widgets.layout.HLayout;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
16 import com.smartgwt.client.widgets.layout.VLayout;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
18 import de.intevation.flys.client.client.Config;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
19 import de.intevation.flys.client.client.FLYSConstants;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
20 import de.intevation.flys.client.client.event.StepForwardEvent;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
21 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
22 import de.intevation.flys.client.client.services.RemoveArtifactServiceAsync;
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;
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
27 import de.intevation.flys.client.shared.model.DataList;
867
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.DefaultData;
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.DefaultDataItem;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
30 import de.intevation.flys.client.shared.model.Recommendation;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
31 import de.intevation.flys.client.shared.model.Recommendation.Facet;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
32 import de.intevation.flys.client.shared.model.Recommendation.Filter;
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
33 import de.intevation.flys.client.shared.model.User;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
34
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
35 import java.util.ArrayList;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
36 import java.util.List;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
37 import java.util.Map;
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
38 import java.util.Set;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 // TODO Probably better to branch off AbstractUIProvider.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
41 // TODO Merge with other datacage-widget impls.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
42 /**
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
43 * 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
44 * DatacagePairWidget which is put in the input-helper area.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
45 */
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
46 public class DatacageTwinPanel
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
47 extends TextProvider {
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4127
diff changeset
49 private static final long serialVersionUID = 8906629596491827857L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4127
diff changeset
50
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 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
52
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 protected String dataName;
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 User user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
57 /** 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
58 protected ListGrid differencesList;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
59
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
60 /**
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
61 * 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
62 * 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
63 */
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
64 protected List<RecommendationPairRecord> removedPairs =
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
65 new ArrayList<RecommendationPairRecord>();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
66
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
67 /** 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
68 LoadArtifactServiceAsync loadArtifactService = GWT.create(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
69 de.intevation.flys.client.client.services.LoadArtifactService.class);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
70
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
71 /** 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
72 RemoveArtifactServiceAsync removeArtifactService = GWT.create(
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
73 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
74
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
75
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 public DatacageTwinPanel(User user) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 super();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78 this.user = user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
82 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
83 * 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
84 * @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
85 * @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
86 * brackets were found.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
87 * @see StringUtil.unbracket
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
88 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
89 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
90 // null- guard.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
91 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
92
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
93 int start = value.indexOf("[");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
94 int end = value.indexOf("]");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
95
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
96 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
97 return value;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
98 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
99
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
100 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
101
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
102 return value;
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
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 * 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
108 * @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
109 * @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
110 * @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
111 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
112 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
113 // TODO Construct "real" filter.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
114 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
115 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
116 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
117 parts[1],
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
118 parts[2]);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
119
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
120 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
121 ();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
122 facets.add(facet);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
123 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
124 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
125 this.artifact.getUuid(), filter);
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
126 r.setDisplayName(parts[3]);
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
127 return r;
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
128 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
129
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 * 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
133 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
134 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
135 // Split this string.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
136 // 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
137 String[] recs = from.split("#");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
138 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
139 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
140 Recommendation minuend =
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
141 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
142 Recommendation subtrahend =
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
143 createRecommendationFromString(recs[i+1]);
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
144
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
145 RecommendationPairRecord pr = new RecommendationPairRecord(
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
146 minuend, subtrahend);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
147 // 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
148 // already cloned.
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
149 pr.setIsAlreadyLoaded(true);
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
150 this.differencesList.addData(pr);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
151 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
152 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
153
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
154
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
155 /**
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
156 * Creates the graphical representation and interaction widgets for the data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
157 * @param dataList the data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
158 * @return graphical representation and interaction widgets for data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
159 */
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
160 @Override
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161 public Canvas create(DataList dataList) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 GWT.log("createData()");
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
163
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
164 Canvas widget = createWidget();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
165 Canvas submit = getNextButton();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
166
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
167 VLayout layout = new VLayout();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
168 HLayout helperLayout = new HLayout();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
169 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
170 user, "waterlevels", differencesList));
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
171
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
172 layout.addMember(widget);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 layout.addMember(submit);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 layout.setMembersMargin(10);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
175 this.helperContainer.addMember(helperLayout);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
177 // Find old data, if any, handle "diffids".
1543
0b79630e3bcb Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1442
diff changeset
178 Data data = dataList.get(0);
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
179 this.dataName = data.getLabel();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
180 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
181 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
182 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
183 populateGridFromString(
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
184 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
185 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
186 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
187 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
188
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189 return layout;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
191
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
193 /**
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
194 * Validates the selection.
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
195 * @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
196 */
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
197 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
198 public List<String> validate() {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
199 List<String> errors = new ArrayList<String>();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
200 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
201 errors.add(MSG.error_no_waterlevel_pair_selected());
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
202 }
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
203 // 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
204 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
205 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
206 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
207 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
208 }
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
209 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
210
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
211 return errors;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
212 }
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
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
215 /**
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
216 * 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
217 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
218 public Canvas createWidget() {
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
219 VLayout layout = new VLayout();
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
220 differencesList = new ListGrid();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
221
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
222 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
223 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
224 differencesList.setShowHeaderContextMenu(false);
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
225 differencesList.setHeight(150);
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
226 differencesList.setShowAllRecords(true);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
227
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
228 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
229 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
230 // 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
231 // setCanRecomeRecords.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
232 final ListGridField removeField =
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
233 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
234 setType(ListGridFieldType.ICON);
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
235 setIcon(GWT.getHostPageBaseURL() + MSG.removeFeature());
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
236 setCanEdit(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
237 setCanFilter(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
238 setCanSort(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
239 setCanGroupBy(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
240 setCanFreeze(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
241 setWidth(25);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
242 }};
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
243
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
244 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
245 capitalField, removeField});
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
246
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
247 differencesList.addRecordClickHandler(new RecordClickHandler() {
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
248 @Override
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
249 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
250 // Just handle remove-clicks
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
251 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
252 return;
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
253 }
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
254 trackRemoved(event.getRecord());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
255 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
256 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
257 });
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
258 layout.addMember(differencesList);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
259
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
260 return layout;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
261 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
262
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
263
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
264 /**
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
265 * Add record to list of removed records.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
266 */
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
267 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
268 RecommendationPairRecord pr = (RecommendationPairRecord) r;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
269 this.removedPairs.add(pr);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
270 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
271
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
272
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
273 /**
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
274 * 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
275 * 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
276 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
277 @Override
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
278 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
279 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
280
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
281 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
282 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
283 showErrors(errors);
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
284 return;
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
285 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
286
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
287 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
288 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
289
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
290 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
291
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
292 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
293 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
294
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
295 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
296 RecommendationPairRecord r =
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
297 (RecommendationPairRecord) record;
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
298 // Do not add "old" recommendations.
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
299 if (!r.isAlreadyLoaded()) {
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
300 // Check whether one of those is a dike or similar.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
301 // 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
302 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
303 if(firstR.getIDs() != null) {
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
304 GWT.log("First IDs: " + firstR.getIDs() + " factory: "
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
305 + firstR.getFactory());
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
306 }
1392
baada4879c20 Fix clone of static artifacts for differences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1363
diff changeset
307 if(firstR.getIDs() != null) {
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
308 // 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
309 firstR.setFactory("staticwkms");
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
310 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
311 else {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
312 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
313 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
314 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
315 if(secondR.getIDs() != null) {
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
316 GWT.log("Second IDs: " + secondR.getIDs() + " factory: "
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
317 + secondR.getFactory());
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 }
1392
baada4879c20 Fix clone of static artifacts for differences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1363
diff changeset
319 if (secondR.getIDs() != null) {
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
320 // 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
321 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
322 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
323 else {
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
324 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
325 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
326
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
327 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
328 ar.add(secondR);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
329 }
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
330 else {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
331 all.add(r.getFirst());
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
332 all.add(r.getSecond());
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
333 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
334 }
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
335
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
336 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
337 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
338
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
339 // 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
340 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
341 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
342 Recommendation first = rp.getFirst();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
343 Recommendation second = rp.getSecond();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
344
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
345 for (Recommendation recommendation: toUse) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
346 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
347 first = null;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
348 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
349 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
350 second = null;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
351 }
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 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
354 break;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
355 }
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 (first != null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
358 artifactIdsToRemove.add(first.getIDs());
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 if (second != null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
361 artifactIdsToRemove.add(second.getIDs());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
362 }
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 // 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
366 // feedback.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
367 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
368 removeArtifactService.remove(this.collection,
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
369 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
370 locale,
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
371 new AsyncCallback<Collection>() {
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
372 @Override
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
373 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
374 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
375 }
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
376 @Override
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
377 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
378 GWT.log("RemoveArtifact succeeded");
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
379 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
380 });
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
381 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
382
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
383 // Clone new ones (and spawn statics), go forward.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
384 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
385 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
386 toClone,
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
387 //"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
388 null,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
389 locale,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
390 new AsyncCallback<Artifact[]>() {
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
391 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
392 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
393 GWT.log("Failure of cloning with factories!");
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
394 }
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
395 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
396 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
397 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
398 " with factories.");
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
399
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
400 fireStepForwardEvent(new StepForwardEvent(
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
401 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
402 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
403 });
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
404 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
405
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
406
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
407 /**
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
408 * Create Data and DataItem from selection (a long string with identifiers
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
409 * to construct diff-pairs).
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
410 *
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
411 * @param newRecommendations "new" recommendations (did not survive a
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
412 * backjump).
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
413 * @param newArtifacts artifacts cloned from newRecommendations.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
414 * @param oldRecommendations old recommendations that survived a backjump.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
415 *
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
416 * @return dataitem with a long string with identifiers to construct
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
417 * diff-pairs.
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
418 */
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
419 protected Data[] getData(
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
420 Recommendation[] newRecommendations,
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
421 Artifact[] newArtifacts,
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
422 Recommendation[] oldRecommendations)
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
423 {
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
424 // Construct string with info about selections.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
425 String dataItemString = "";
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
426 for (int i = 0; i < newRecommendations.length; i++) {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
427 Recommendation r = newRecommendations[i];
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
428 Artifact newArtifact = newArtifacts[i];
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
429 String uuid = newArtifact.getUuid();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
430 r.setMasterArtifact(uuid);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
431 if (i>0) dataItemString += "#";
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
432
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
433 dataItemString += createDataString(uuid, r);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
434 }
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
435
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
436 for (int i = 0; i < oldRecommendations.length; i++) {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
437 Recommendation r = oldRecommendations[i];
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
438 String uuid = r.getIDs();
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
439 if (dataItemString.length() > 0) dataItemString += "#";
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
440
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
441 dataItemString += createDataString(uuid, r);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
442 }
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
443
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
444 // 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
445 // (e.g. one per pair).
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
446 DataItem item = new DefaultDataItem(dataName, dataName, dataItemString);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
447 return new Data[] { new DefaultData(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
448 dataName, null, null, new DataItem[] {item}) };
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
449 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
450
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
451
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
452 /**
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
453 * Creates part of the String that encodes minuend or subtrahend.
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
454 * @param artifact Artifacts UUID.
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
455 * @param recommendation Recommendation to wrap in string.
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
456 */
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
457 protected String createDataString(
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
458 String artifact,
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
459 Recommendation recommendation)
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
460 {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
461 Filter filter = recommendation.getFilter();
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
462 Facet f = null;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
463
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
464 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
465 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
466 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
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 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
469 List<Facet> fs = entry.getValue();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
470
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
471 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
472 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
473 break;
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
474 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
475 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
476
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
477 return "[" + artifact + ";"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
478 + f.getName()
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
479 + ";"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
480 + f.getIndex()
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
481 + ";"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
482 + 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 {
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
485 return "["
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
486 + artifact
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
487 + ";staticwkms;0;"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
488 + recommendation.getDisplayName() + "]";
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
489 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
490 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
491 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
492 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org