annotate flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java @ 4215:c179cd02177d

Logout the current user Add code to the logout button to remove the current user from the session and to redirect the browser window to the login page. Part of flys/issue916 (Logout: "Abmelden" Knopf mit Funktion belegen)
author Björn Ricks <bjoern.ricks@intevation.de>
date Tue, 23 Oct 2012 09:59:16 +0200
parents 01b18db3b288
children
rev   line source
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.shared.model;
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
3 import java.util.ArrayList;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
4 import java.util.List;
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
5 import java.util.Map;
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
6 import java.util.HashMap;
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
7
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 import java.io.Serializable;
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 public class ToLoad implements Serializable
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 {
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
12
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
13 public class StringPair {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
14 public String first;
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
15 public String second;
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
16 public StringPair(String first, String second) {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
17 this.first = first;
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
18 this.second = second;
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
19 }
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
20 public int hashCode() {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
21 return first.hashCode() + second.hashCode();
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
22 }
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
23 public boolean equals(StringPair other) {
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
24 return (this.second.equals(other.second)) && (this.first.equals(other.first));
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
25 }
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
26 }
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
27 public static final String SYNTHETIC_KEY = "key-";
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
28
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
29 protected Map<String, Map<StringPair, ArtifactFilter>> artifacts;
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
30
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
31 public ToLoad() {
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
32 artifacts = new HashMap<String, Map<StringPair, ArtifactFilter>>();
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 }
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34
834
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
35 public static final String uniqueKey(Map<?, ?> map) {
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
36 int idx = map.size();
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
37
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
38 String key = SYNTHETIC_KEY + idx;
834
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
39 while (map.containsKey(key)) {
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
40 key = SYNTHETIC_KEY + ++idx;
834
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
41 }
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
42 return key;
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
43 }
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
44
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
45 public void add(
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
46 String artifactName,
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
47 String factory,
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
48 String out,
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
49 String name,
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
50 String ids,
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
51 String displayName
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
52 ) {
834
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
53 if (artifactName == null) {
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
54 artifactName = uniqueKey(artifacts);
77469d7f3c93 Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 831
diff changeset
55 }
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
56
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
57 Map<StringPair, ArtifactFilter> artifact = artifacts.get(artifactName);
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
58
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
59 if (artifact == null) {
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
60 artifact = new HashMap<StringPair, ArtifactFilter>();
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
61 artifacts.put(artifactName, artifact);
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
62 }
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
63
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
64 ArtifactFilter filter = artifact.get(factory);
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
65 if (filter == null) {
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
66 filter = new ArtifactFilter(factory);
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
67 artifact.put(new StringPair(factory, displayName), filter);
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
68 }
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69
837
29966a53cfeb Datacage: Use 'ids' instead of 'num' in user specific part, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 834
diff changeset
70 filter.add(out, name, ids);
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 }
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72
826
2f65c742803f Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 822
diff changeset
73 public boolean isEmpty() {
831
9101b4d64666 Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 826
diff changeset
74 return artifacts.isEmpty();
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75 }
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
76
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
77 public List<Recommendation> toRecommendations() {
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
78 List<Recommendation> recommendations = new ArrayList<Recommendation>();
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
79
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
80 for (Map.Entry<String, Map<StringPair, ArtifactFilter>> all:
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
81 artifacts.entrySet()
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
82 ) {
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
83 String masterArtifact = all.getKey();
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
84
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
85 if (masterArtifact.startsWith(SYNTHETIC_KEY)) { // system data
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
86 masterArtifact = null;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
87 }
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
88
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
89 for (Map.Entry<StringPair, ArtifactFilter> entry:
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
90 all.getValue().entrySet()
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
91 ) {
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
92 StringPair pair = entry.getKey();
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
93 String factory = pair.first;
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
94 ArtifactFilter artifactFilter = entry.getValue();
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
95
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
96 String ids;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
97 Recommendation.Filter filter;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
98
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
99 if (masterArtifact == null) { // system data
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
100 ids = artifactFilter.collectIds();
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
101 filter = null;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
102 }
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
103 else { // user specific
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
104 ids = null;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
105 filter = artifactFilter.toFilter();
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
106 }
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
107
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
108 Recommendation recommendation = new Recommendation(
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
109 factory, ids, masterArtifact, filter);
1352
01b18db3b288 In WDiff datacage input make names survive backjumps.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 846
diff changeset
110 recommendation.setDisplayName(pair.second);
846
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
111
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
112 recommendations.add(recommendation);
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
113 }
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
114 }
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
115
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
116 return recommendations;
e47ef0ca8f33 Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 837
diff changeset
117 }
822
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 }
ffb98b228b3c Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org