annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 36f52c80b7ac
children 28df64078f27
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import com.google.gwt.core.client.GWT;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
12 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
13
1321
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.data.Record;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
15 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
16 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
17 import com.smartgwt.client.widgets.events.ClickEvent;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
18 import com.smartgwt.client.widgets.grid.ListGrid;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
19 import com.smartgwt.client.widgets.grid.ListGridField;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
20 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
21 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
22 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
23 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
24 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
25
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.client.Config;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 import org.dive4elements.river.client.client.event.StepForwardEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
29 import org.dive4elements.river.client.client.services.LoadArtifactServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
30 import org.dive4elements.river.client.client.services.RemoveArtifactServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
31 import org.dive4elements.river.client.shared.model.Artifact;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
32 import org.dive4elements.river.client.shared.model.Collection;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
33 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
34 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
36 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.shared.model.Recommendation;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
39 import org.dive4elements.river.client.shared.model.Recommendation.Facet;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.shared.model.Recommendation.Filter;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
41 import org.dive4elements.river.client.shared.model.User;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
42
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
43 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
44 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
45 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
46 import java.util.Set;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 // TODO Probably better to branch off AbstractUIProvider.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
49 // TODO Merge with other datacage-widget impls.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
50 /**
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
51 * 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
52 * DatacagePairWidget which is put in the input-helper area.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
53 */
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
54 public class DatacageTwinPanel
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
55 extends TextProvider {
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4127
diff changeset
57 private static final long serialVersionUID = 8906629596491827857L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4127
diff changeset
58
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59 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
60
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 protected String dataName;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 protected User user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
65 /** 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
66 protected ListGrid differencesList;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
67
1442
4a6814be92ba Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
68 /**
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
69 * 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
70 * 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
71 */
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
72 protected List<RecommendationPairRecord> removedPairs =
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
73 new ArrayList<RecommendationPairRecord>();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
74
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
75 /** 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
76 LoadArtifactServiceAsync loadArtifactService = GWT.create(
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
77 org.dive4elements.river.client.client.services
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
78 .LoadArtifactService.class);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
79
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
80 /** 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
81 RemoveArtifactServiceAsync removeArtifactService = GWT.create(
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
82 org.dive4elements.river.client.client.services
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
83 .RemoveArtifactService.class);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
85
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 public DatacageTwinPanel(User user) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 super();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 this.user = user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91
1298
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 * 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
94 * @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
95 * @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
96 * brackets were found.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
97 * @see StringUtil.unbracket
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 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
100 // null- guard.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
101 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
102
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
103 int start = value.indexOf("[");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
104 int end = value.indexOf("]");
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 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
107 return value;
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
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
110 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
111
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
112 return value;
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
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
115
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
116 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
117 * 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
118 * @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
119 * @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
120 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
121 public Recommendation createRecommendationFromString(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
122 String from,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
123 String factory
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
124 ) {
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
125 // TODO Construct "real" filter.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
126 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
127 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
128 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
129 parts[1],
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
130 parts[2]);
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 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
133 ();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
134 facets.add(facet);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
135 filter.add("longitudinal_section", facets);
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
136 Recommendation r = new Recommendation(factory, parts[0],
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
137 this.artifact.getUuid(), filter);
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
138 r.setDisplayName(parts[3]);
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
139 return r;
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
140 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
141
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
142
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
143 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
144 * 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
145 */
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
146 public void populateGridFromString(String from, String factory){
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
147 // Split this string.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
148 // 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
149 String[] recs = from.split("#");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
150 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
151 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
152 Recommendation minuend =
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
153 createRecommendationFromString(recs[i+0], factory);
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
154 Recommendation subtrahend =
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
155 createRecommendationFromString(recs[i+1], factory);
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
156
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
157 RecommendationPairRecord pr = new RecommendationPairRecord(
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
158 minuend, subtrahend);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
159 // 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
160 // already cloned.
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
161 pr.setIsAlreadyLoaded(true);
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
162 this.differencesList.addData(pr);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
163 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
164 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
165
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
166
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
167 /**
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
168 * Creates the graphical representation and interaction widgets
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
169 * for the data.
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
170 * @param dataList the data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
171 * @return graphical representation and interaction widgets for data.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
172 */
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
173 @Override
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
174 public Canvas create(DataList dataList) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
175 GWT.log("createData()");
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
176
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 Canvas widget = createWidget();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 Canvas submit = getNextButton();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179
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
180 VLayout layout = new VLayout();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
181 HLayout helperLayout = new HLayout();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
182 helperLayout.addMember(new DatacagePairWidget(this.artifact,
8298
5dfb3ff98bc6 Purge clash of out-names, resulting hacks and tests for not existing outs and give some more meaningful names.
"Tom Gottfried <tom@intevation.de>"
parents: 7563
diff changeset
183 user, "winfo_diff_twin_panel", differencesList));
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 layout.addMember(widget);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 layout.addMember(submit);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 layout.setMembersMargin(10);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
188 this.helperContainer.addMember(helperLayout);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
190 populateGrid(dataList, "waterlevel");
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
191 return layout;
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
192 }
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
193
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
194 protected void populateGrid(DataList dataList, String factory) {
1543
0b79630e3bcb Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1442
diff changeset
195 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
196 this.dataName = data.getLabel();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
197 for (int i = 0; i < dataList.size(); i++) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
198 if (dataList.get(i) != null
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
199 && dataList.get(i).getItems() != null
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
200 ) {
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
201 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
202 populateGridFromString(
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
203 dataList.get(i).getItems()[0].getStringValue(),
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
204 factory);
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
205 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
206 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
207 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
208 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
209
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
210
1314
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 * Validates the selection.
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
213 * @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
214 */
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
215 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
216 public List<String> validate() {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
217 List<String> errors = new ArrayList<String>();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
218 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
219 errors.add(MSG.error_no_waterlevel_pair_selected());
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
220 }
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
221 // 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
222 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
223 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
224 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
225 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
226 }
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
227 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
228
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
229 return errors;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
230 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
231
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
232
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
233 /**
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
234 * 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
235 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
236 public Canvas createWidget() {
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
237 VLayout layout = new VLayout();
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
238 differencesList = new ListGrid();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
239
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
240 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
241 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
242 differencesList.setShowHeaderContextMenu(false);
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
243 differencesList.setHeight(150);
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
244 differencesList.setShowAllRecords(true);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
245
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
246 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
247 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
248 // 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
249 // setCanRecomeRecords.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
250 final ListGridField removeField =
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
251 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
252 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
253 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
254 setCanEdit(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
255 setCanFilter(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
256 setCanSort(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
257 setCanGroupBy(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
258 setCanFreeze(false);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
259 setWidth(25);
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
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
262 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
263 capitalField, removeField});
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
264
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
265 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
266 @Override
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
267 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
268 // Just handle remove-clicks
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
269 if(!event.getField().getName()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
270 .equals(removeField.getName())
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
271 ) {
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
272 return;
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
273 }
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
274 trackRemoved(event.getRecord());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
275 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
276 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
277 });
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
278 layout.addMember(differencesList);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
279
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
280 return layout;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
281 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
282
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
283
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
284 /**
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
285 * Add record to list of removed records.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
286 */
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
287 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
288 RecommendationPairRecord pr = (RecommendationPairRecord) r;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
289 this.removedPairs.add(pr);
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
290 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
291
6591
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
292 /**
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
293 * Set factory of recommendation such that the correct artifacts will
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
294 * be cloned for difference calculations.
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
295 */
6584
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
296 public void adjustRecommendation(Recommendation recommendation) {
7563
04cc2dee911e flys/issue1503: Evil hack to force loaded of data to be bound to 'w_differences'. TODO: Remove all the broken code from DataCageTwinPanel.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6623
diff changeset
297 // XXX: THIS IS AN EVIL HACK TO MAKE W-DIFFERENCES WORK AGAIN!
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
298 // TODO: Throw all this code away and do it with server side
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
299 // recommendations!
7563
04cc2dee911e flys/issue1503: Evil hack to force loaded of data to be bound to 'w_differences'. TODO: Remove all the broken code from DataCageTwinPanel.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6623
diff changeset
300 recommendation.setTargetOut("w_differences");
04cc2dee911e flys/issue1503: Evil hack to force loaded of data to be bound to 'w_differences'. TODO: Remove all the broken code from DataCageTwinPanel.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6623
diff changeset
301
6584
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
302 if (recommendation.getIDs() != null) {
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
303 GWT.log("Setting staticwkms factory for rec with ID "
6585
967ae6799d98 Fix typos that lead to non-compilability.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6584
diff changeset
304 + recommendation.getIDs());
6584
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
305 recommendation.setFactory("staticwkms");
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
306 }
6617
67b4728723df Do not fiddle with the factory name of recommendations for differences anymore.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6591
diff changeset
307 /*
67b4728723df Do not fiddle with the factory name of recommendations for differences anymore.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6591
diff changeset
308 // So far, we do not need to rewrite the factory anymore,
67b4728723df Do not fiddle with the factory name of recommendations for differences anymore.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6591
diff changeset
309 // except for staticwkms; probably other cases will pop up later.
6584
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
310 else if (recommendation.getFactory().equals("winfo")) {
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
311 GWT.log("Setting waterlevel factory for a winfo rec.");
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
312 recommendation.setFactory("waterlevel");
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
313 }
6617
67b4728723df Do not fiddle with the factory name of recommendations for differences anymore.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6591
diff changeset
314 */
6584
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
315 else {
6585
967ae6799d98 Fix typos that lead to non-compilability.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6584
diff changeset
316 GWT.log("Leave rec. id " + recommendation.getIDs() + ", factory "
6584
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
317 + recommendation.getFactory() + " untouched.");
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
318 }
3059d49cc5ce issue1394: Let client use the new pseudo-out: differenceable, deal with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
319 }
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
320
1314
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
321 /**
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
322 * 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
323 * 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
324 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
325 @Override
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
326 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
327 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
328
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
329 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
330 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
331 showErrors(errors);
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
332 return;
4c716bec7822 Validate selection of pairs in wdiff, show error(s) if invalid.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1308
diff changeset
333 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
334
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
335 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
336 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
337
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
338 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
339
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
340 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
341 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
342
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
343 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
344 RecommendationPairRecord r =
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
345 (RecommendationPairRecord) record;
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
346 // Do not add "old" recommendations.
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
347 if (!r.isAlreadyLoaded()) {
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
348 // Check whether one of those is a dike or similar.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
349 // 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
350 Recommendation firstR = r.getFirst();
6591
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
351 adjustRecommendation(firstR);
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
352
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
353 Recommendation secondR = r.getSecond();
6591
661faf99d240 issue1394: Minor refactoring.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6585
diff changeset
354 adjustRecommendation(secondR);
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
355 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
356 ar.add(secondR);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
357 }
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
358 else {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
359 all.add(r.getFirst());
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
360 all.add(r.getSecond());
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
361 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
362 }
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
363
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
364 final Recommendation[] toClone = ar.toArray(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
365 new Recommendation[ar.size()]);
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
366 final Recommendation[] toUse = all.toArray(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
367 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
368
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
369 // 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
370 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
371 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
372 Recommendation first = rp.getFirst();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
373 Recommendation second = rp.getSecond();
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
374
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
375 for (Recommendation recommendation: toUse) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
376 if (first != null
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
377 && first.getIDs().equals(recommendation.getIDs())
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
378 ) {
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
379 first = null;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
380 }
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
381 if (second != null
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
382 && second.getIDs().equals(recommendation.getIDs())
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
383 ) {
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
384 second = null;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
385 }
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 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
388 break;
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
389 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
390 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
391 if (first != null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
392 artifactIdsToRemove.add(first.getIDs());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
393 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
394 if (second != null) {
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
395 artifactIdsToRemove.add(second.getIDs());
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
396 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
397 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
398
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
399 // 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
400 // feedback.
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
401 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
402 removeArtifactService.remove(this.collection,
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
403 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
404 locale,
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
405 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
406 @Override
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
407 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
408 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
409 }
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
410 @Override
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
411 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
412 GWT.log("RemoveArtifact succeeded");
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
413 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
414 });
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
415 }
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
416
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
417 // Clone new ones (and spawn statics), go forward.
6623
3999162f474f DatacageTwinPanel: Show busy-wheel when loading and adding artifacts to collection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6617
diff changeset
418 parameterList.lockUI();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
419 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
420 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
421 toClone,
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
422 //"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
423 null,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
424 locale,
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
425 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
426 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
427 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
428 GWT.log("Failure of cloning with factories!");
6623
3999162f474f DatacageTwinPanel: Show busy-wheel when loading and adding artifacts to collection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6617
diff changeset
429 parameterList.unlockUI();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
430 }
4127
1e9e7b7d9f15 More fixes for #897: missing resource exceptions when handling other exceptions
Christian Lins <christian.lins@intevation.de>
parents: 2905
diff changeset
431 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
432 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
433 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
434 " with factories.");
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
435
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 917
diff changeset
436 fireStepForwardEvent(new StepForwardEvent(
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
437 getData(toClone, artifacts, toUse)));
6623
3999162f474f DatacageTwinPanel: Show busy-wheel when loading and adding artifacts to collection.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6617
diff changeset
438 parameterList.unlockUI();
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
439 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
440 });
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
441 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
442
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
443
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
444 /**
1333
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
445 * Create Data and DataItem from selection (a long string with identifiers
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
446 * to construct diff-pairs).
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
447 *
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
448 * @param newRecommendations "new" recommendations (did not survive a
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
449 * backjump).
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
450 * @param newArtifacts artifacts cloned from newRecommendations.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
451 * @param oldRecommendations old recommendations that survived a backjump.
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
452 *
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
453 * @return dataitem with a long string with identifiers to construct
1627a28c4504 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1321
diff changeset
454 * diff-pairs.
1321
cfbfaadf4b6f Remove Artifacts not needed anymore when reparameterizing w-diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1314
diff changeset
455 */
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
456 protected Data[] getData(
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
457 Recommendation[] newRecommendations,
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
458 Artifact[] newArtifacts,
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
459 Recommendation[] oldRecommendations)
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
460 {
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
461 // Construct string with info about selections.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
462 String dataItemString = "";
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
463 for (int i = 0; i < newRecommendations.length; i++) {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
464 Recommendation r = newRecommendations[i];
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
465 Artifact newArtifact = newArtifacts[i];
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
466 String uuid = newArtifact.getUuid();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
467 r.setMasterArtifact(uuid);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
468 if (i>0) dataItemString += "#";
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
469
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
470 dataItemString += createDataString(uuid, r);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
471 }
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
472
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
473 for (int i = 0; i < oldRecommendations.length; i++) {
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
474 Recommendation r = oldRecommendations[i];
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
475 String uuid = r.getIDs();
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
476 if (dataItemString.length() > 0) dataItemString += "#";
2905
51ed89b754ae FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1543
diff changeset
477
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
478 dataItemString += createDataString(uuid, r);
1304
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
479 }
18b0414bde44 Allow reparameterization of W-Diffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1298
diff changeset
480
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
481 // 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
482 // (e.g. one per pair).
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
483 DataItem item = new DefaultDataItem(dataName, dataName, dataItemString);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
484 return new Data[] { new DefaultData(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
485 dataName, null, null, new DataItem[] {item}) };
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
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
488
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
489 protected String createDataString(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
490 String artifact,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
491 Recommendation recommendation
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8719
diff changeset
492 ) {
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
493 return createDataString(artifact, recommendation, "staticwkms");
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
494 }
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
495
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
496 /**
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
497 * 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
498 * @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
499 * @param recommendation Recommendation to wrap in string.
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
500 * @param factory The factory to encode.
1307
489e6a82fe84 Partial fix for flys/issue304 (Erweiterte Funktionen W-Differenzen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1305
diff changeset
501 */
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
502 protected String createDataString(
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
503 String artifact,
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
504 Recommendation recommendation,
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
505 String factory)
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
506 {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
507 Filter filter = recommendation.getFilter();
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1349
diff changeset
508 Facet f = null;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
509
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
510 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
511 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
512 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
513
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
514 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
515 List<Facet> fs = entry.getValue();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
516
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
517 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
518 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
519 break;
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
520 }
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
521 }
1349
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
522
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
523 return "[" + artifact + ";"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
524 + f.getName()
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
525 + ";"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
526 + f.getIndex()
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
527 + ";"
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
528 + 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
529 }
46a4b74d87bf Allow (yet limited) usage of zus and flood-protection data in wdiffs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1333
diff changeset
530 else {
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
531 return "["
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
532 + artifact
8719
36f52c80b7ac Deduplicate W / BedHeight Difference selection panel code
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8298
diff changeset
533 + ";" + factory + ";0;"
1363
9da7fdfbb80e Fix flys/issue390 (W-Diff: Icon zum Löschen anpassen).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1352
diff changeset
534 + recommendation.getDisplayName() + "]";
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
535 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
536 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
537 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
538 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org