annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java @ 1298:b0ed67cb5197

Minor refactoring, improved displayed Strings in W-Diff branch. flys-client/trunk@2920 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 10 Oct 2011 10:02:16 +0000
parents d9cb362b8b34
children 18b0414bde44
rev   line source
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
3 import java.util.ArrayList;
1273
6ec804500621 Avoid duplicate clones in w-diff branch by using a set instead of a list.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1266
diff changeset
4 import java.util.HashSet;
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
5 import java.util.List;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
6 import java.util.Map;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
7 import java.util.Set;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
8
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9 import com.google.gwt.core.client.GWT;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
10 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
11
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.Canvas;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.Label;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.layout.HLayout;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.layout.VLayout;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
16 import com.smartgwt.client.widgets.grid.ListGrid;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
17 import com.smartgwt.client.widgets.grid.ListGridField;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
18 import com.smartgwt.client.widgets.grid.ListGridRecord;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
19 import com.smartgwt.client.widgets.events.ClickEvent;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
21 import de.intevation.flys.client.shared.model.Artifact;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.client.shared.model.Data;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.shared.model.DataItem;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.shared.model.DefaultData;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.shared.model.DefaultDataItem;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import de.intevation.flys.client.shared.model.DataList;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 import de.intevation.flys.client.shared.model.User;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 import de.intevation.flys.client.client.FLYSConstants;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
30 import de.intevation.flys.client.client.event.StepForwardEvent;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
31 import de.intevation.flys.client.shared.model.Recommendation;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
32 import de.intevation.flys.client.shared.model.ToLoad;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
33 import de.intevation.flys.client.shared.model.Recommendation.Facet;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
34 import de.intevation.flys.client.shared.model.Recommendation.Filter;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
35
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
36 import de.intevation.flys.client.client.services.LoadArtifactService;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
37 import de.intevation.flys.client.client.services.LoadArtifactServiceAsync;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
38 import de.intevation.flys.client.client.Config;
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 // TODO Probably better to branch off AbstractUIProvider.
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
41 // TODO Merge with other datacage-widget impls.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
42 /**
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
43 * Panel containing a Grid and a "next" button. The Grid is fed by a
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
44 * DatacagePairWidget which is put in the input-helper area.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
45 */
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
46 public class DatacageTwinPanel
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
47 extends TextProvider {
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 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
50
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 protected String dataName;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 protected User user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
55 protected ToLoad toLoad1;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
56
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
57 protected ToLoad toLoad2;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
58
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
59 protected ListGrid differencesList;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
60
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
61 LoadArtifactServiceAsync loadArtifactService = GWT.create(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
62 de.intevation.flys.client.client.services.LoadArtifactService.class);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
63
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65 public DatacageTwinPanel(User user) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66 super();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67 this.user = user;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
71 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
72 * 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
73 * @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
74 * @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
75 * brackets were found.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
76 * @see StringUtil.unbracket
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
77 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
78 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
79 // null- guard.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
80 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
81
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
82 int start = value.indexOf("[");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
83 int end = value.indexOf("]");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
84
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
85 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
86 return value;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
87 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
88
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
89 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
90
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
91 return value;
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
92 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
93
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
94
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
95 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
96 * 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
97 * @TODO describe format of input string
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
98 * @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
99 * @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
100 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
101 public Recommendation createRecommendationFromString(String from) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
102 // TODO Construct "real" filter.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
103 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
104 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
105 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
106 parts[1],
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
107 parts[2]);
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 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
110 ();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
111 facets.add(facet);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
112 filter.add("longitudinal_section", facets);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
113 Recommendation r = new Recommendation("waterlevel", parts[0],
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
114 this.artifact.getUuid(), filter);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
115 return r;
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
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
118
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
119 /**
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
120 * 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
121 */
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
122 public void populateGridFromString(String from){
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
123 // Split this string.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
124 // 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
125 String[] recs = from.split("#");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
126 // TODO real name
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
127 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
128 for (int i = 0; i < recs.length; i+=2) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
129 Recommendation minuend = createRecommendationFromString(recs[i+0]);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
130 Recommendation subtrahend = createRecommendationFromString(recs[i+1]);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
131 RecommendationPairRecord pr = new RecommendationPairRecord(
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
132 "A", minuend, "B", subtrahend);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
133 this.differencesList.addData(pr);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
134 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
135 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
136
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
137
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
138 @Override
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 public Canvas create(DataList dataList) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 GWT.log("createData()");
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
141
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
142 // TODO use i18n of data.
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
143 Canvas label = new Label("Subtrahend/Minuend");//data.getDescription());
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
144 Canvas widget = createWidget();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 Canvas submit = getNextButton();
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146
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
147 VLayout layout = new VLayout();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
148 HLayout helperLayout = new HLayout();
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 label.setHeight(50);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
150 helperLayout.addMember(new DatacagePairWidget(this.artifact,
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
151 user, "longitudinal_section", differencesList));
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
152
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
153 /*layout.addMember(label);*/
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
154 layout.addMember(widget);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
155 layout.addMember(submit);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
156 layout.setMembersMargin(10);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
157 this.helperContainer.addMember(helperLayout);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
158
1298
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
159 // Find old data, if any.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
160 Data data = dataList.get(0);
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
161 // "diffids" data handling.
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
162 this.dataName = data.getLabel();
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
163 for (int i = 0; i < dataList.size(); i++) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
164 if (dataList.get(i) != null) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
165 if (dataList.get(i).getItems() != null) {
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
166 populateGridFromString(dataList.get(i).getItems()[0].getStringValue());
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
167 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
168 else{
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
169 System.out.println("DatacageTwinPanel: Datalist for item is null");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
170 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
171 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
172 else{
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
173 System.out.println("DatacageTwinPanel: Data " + i + " is null (not displayable).");
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
174 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
175 }
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
176
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
177 return layout;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
178 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
179
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
180
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181 @Override
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
182 public List<String> validate() {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
183 List<String> errors = new ArrayList<String>();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
184 if (differencesList.getRecords().length == 0) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
185 // TODO i18n of error message. (MSG.no_waterlevel_pair_selected())
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
186 errors.add("No pair of waterlevel items selected");
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
187 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
188
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
189 return errors;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
190 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
191
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
192
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
193 /**
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
194 * 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
195 */
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
196 public Canvas createWidget() {
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
197 VLayout layout = new VLayout();
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
198 differencesList = new ListGrid();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
199
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
200 differencesList.setHeight(150);
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
201 differencesList.setShowAllRecords(true);
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
202 differencesList.setCanEdit(false);
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
203 differencesList.setCanRemoveRecords(true);
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
204
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
205 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
206 ListGridField capitalField = new ListGridField("second", "Subtrahend");
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
207 differencesList.setFields(new ListGridField[] {nameField,
1274
f76c90b3086f Make differences (rows of list) in wdiff-gui removable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1273
diff changeset
208 capitalField});
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
209
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
210 layout.addMember(differencesList);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
211
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
212 return layout;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
213 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
214
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
215
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
216 @Override
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
217 public void onClick(ClickEvent e) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
218 /*
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
219 TODO: Validation/Error
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
220 List<String> errors = validate();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
221 if (errors == null || errors.isEmpty()) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
222 ...
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
223 else {showErrors(errors);}
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
224
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
225 * */
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
226 GWT.log("DatacageTwinPanel.onClick");
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
227 Config config = Config.getInstance();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
228 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
229
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
230 Set<Recommendation> ar = new HashSet<Recommendation>();
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
231 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
232 RecommendationPairRecord r =
b0ed67cb5197 Minor refactoring, improved displayed Strings in W-Diff branch.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1295
diff changeset
233 (RecommendationPairRecord) record;
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
234 ar.add(r.getFirst());
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
235 ar.add(r.getSecond());
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
236 }
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
237
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
238 final Recommendation[] rs = ar.toArray(new Recommendation[ar.size()]);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
239 loadArtifactService.loadMany(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
240 this.collection,
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
241 rs,
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
242 "waterlevel",
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
243 config.getServerUrl(),
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
244 config.getLocale(),
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
245 new AsyncCallback<Artifact[]>() {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
246 public void onFailure(Throwable caught) {
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
247 GWT.log("Failure of cloning with waterlevelfactory!");
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
248 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
249 public void onSuccess(Artifact[] artifacts) {
1266
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
250 GWT.log("Success in cloning with watelevelfactory!");
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
251
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
252 fireStepForwardEvent(new StepForwardEvent(
ff012a9d9d1d Employ waterlevelfactory when cloning artifacts for WDifferences-Subtrahend/Minuend-artifacts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1261
diff changeset
253 getData(rs, artifacts)));
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
254 }
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
255 } );
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
256 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
257
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
258
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
259 protected Data[] getData(Recommendation[] rs, Artifact[] newArtifacts) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
260 // Construct string with info about selections.
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
261 String dataItemString = "";
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
262 for (int i = 0; i < rs.length; i++) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
263 Recommendation r = rs[i];
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
264 Artifact newArtifact = newArtifacts[i];
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
265 String uuid = newArtifact.getUuid();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
266 r.setMasterArtifact(uuid);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
267 if (i>0) dataItemString += "#";
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
268
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
269 dataItemString += createDataString(uuid, r.getFilter());
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
270 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
271 DataItem item = new DefaultDataItem(dataName, dataName, dataItemString);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
272 return new Data[] { new DefaultData(
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
273 dataName, null, null, new DataItem[] {item}) };
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
274 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
275
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
276
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
277 protected String createDataString(String artifact, Filter filter) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
278 Facet f = null;
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 Map<String, List<Facet>> outs = filter.getOuts();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
281 Set<Map.Entry<String, List<Facet>>> entries = outs.entrySet();
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 for (Map.Entry<String, List<Facet>> entry: entries) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
284 List<Facet> fs = entry.getValue();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
285
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
286 f = fs.get(0);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
287 if (f != null) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
288 break;
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
289 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
290 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
291
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
292 return "[" + artifact + ";" + f.getName() + ";" + f.getIndex() + "]";
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
293 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
294
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
295 /*@Override
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
296 protected Data[] getData() {
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
297 // TODO ToLoadRecord !
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
298 String value = "TODO:FIND VALUE";
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
299 if (toLoad1 != null) {
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
300 List<Recommendation> recommendations = toLoad1.toRecommendations();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
301 value = recommendations.get(0).getIDs();
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
302 }
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
303 DataItem item1 = new DefaultDataItem(dataName, dataName, value);
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
304 DataItem item2 = new DefaultDataItem(dataName, dataName, value);
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
305 return new Data[] { new DefaultData(
914
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
306 dataName, null, null, new DataItem[] { item1, item2}) };
39a39e9be5af Made DatacageTwinPanel somewhat usable.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 867
diff changeset
307 }*/
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
308 }
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
309 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org