1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package fr.ifremer.coser.web.actions.admin;
23
24 import com.google.common.collect.Maps;
25 import fr.ifremer.coser.result.ResultType;
26 import fr.ifremer.coser.result.repository.ResultRepositoryType;
27 import fr.ifremer.coser.result.request.GetAllResultsRequest;
28 import fr.ifremer.coser.web.CoserWebException;
29 import fr.ifremer.coser.web.actions.common.AbstractCoserAction;
30 import org.apache.commons.collections4.MapUtils;
31 import org.apache.commons.lang3.StringUtils;
32
33 import java.util.List;
34 import java.util.Map;
35 import java.util.Set;
36
37
38
39
40
41
42
43
44
45
46 public class ListProjectsAction extends AbstractCoserAction {
47
48
49 private static final long serialVersionUID = 6024588562104111883L;
50
51
52 protected Map<String, ResultRepositoryType> repositoryTypes;
53
54
55 protected String selectedRepositoryType;
56
57 protected Map<String, String> facades;
58
59 protected Map<String, List<String>> zonesByFacades;
60
61 protected Map<ResultType, Map<String, String>> results;
62
63 protected Map<String, String> indicatorsResults;
64
65 protected Map<String, String> mapsResults;
66
67 public Map<String, ResultRepositoryType> getRepositoryTypes() {
68 return repositoryTypes;
69 }
70
71 public String getSelectedRepositoryType() {
72 return selectedRepositoryType;
73 }
74
75 public void setSelectedRepositoryType(String selectedRepositoryType) {
76 this.selectedRepositoryType = selectedRepositoryType;
77 }
78
79 public Map<String, String> getFacades() {
80 return facades;
81 }
82
83 public Map<String, List<String>> getZonesByFacades() {
84 return zonesByFacades;
85 }
86
87 public Map<String, String> getResults(ResultType resultType) {
88 return results.get(resultType);
89 }
90
91 public String getZoneDisplayName(String zoneId) {
92 return getService().getZoneFullName(zoneId);
93 }
94
95 @Override
96 public String execute() {
97
98 repositoryTypes = getService().getRepositoryTypes();
99 if (MapUtils.isEmpty(repositoryTypes)) {
100 throw new CoserWebException("No result repository type defined!");
101 }
102
103 if (StringUtils.isEmpty(selectedRepositoryType)) {
104
105
106 ResultRepositoryType repositoryType = repositoryTypes.values().iterator().next();
107 selectedRepositoryType = repositoryType.getId();
108 }
109
110 facades = getService().getFacades();
111 zonesByFacades = getService().getZoneByFacade();
112
113 GetAllResultsRequest request = requestBuilder(GetAllResultsRequest.class).
114 addRepositoryType(getSelectedRepositoryType()).
115 toRequest();
116
117 results = Maps.newEnumMap(ResultType.class);
118 if (selectedRepositoryType != null) {
119 ResultRepositoryType repositoryType = repositoryTypes.get(selectedRepositoryType);
120 Set<ResultType> resultTypes = repositoryType.getResultTypes();
121 for (ResultType resultType : resultTypes) {
122
123
124 request.setResultType(resultType);
125 Map<String, String> resultsForType = getService().toMap(request);
126 results.put(resultType, resultsForType);
127 }
128 }
129
130 return SUCCESS;
131 }
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166 }