1 /*
2 * #%L
3 * Coser :: Web
4 * %%
5 * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric, Chemit Tony
6 * %%
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 * #L%
20 */
21
22 package fr.ifremer.coser.web.actions.common;
23
24 import fr.ifremer.coser.result.CoserRequest;
25
26 import java.util.Map;
27
28 /**
29 * Recupere la liste des indicateurs à partir d'une zone et d'une espece (peut
30 * être null dans le cas des communautés).
31 *
32 * @author chatellier
33 * @version $Revision$
34 * <p/>
35 * Last update : $Date$
36 * By : $Author$
37 */
38 public abstract class CommonIndicator extends AbstractCoserJspAction {
39
40 /** serialVersionUID. */
41 private static final long serialVersionUID = 1663244944108703571L;
42
43 protected String facade;
44
45 protected String zone;
46
47 protected String zonePicture;
48
49 protected Map<String, String> indicators;
50
51 /**
52 * @return the request to get zones
53 */
54 protected abstract CoserRequest createZonesRequest();
55
56 /**
57 * @return the request to get indicators
58 */
59 protected abstract CoserRequest createIndicatorsRequest();
60
61 public String getFacade() {
62 return facade;
63 }
64
65 public void setFacade(String facade) {
66 this.facade = facade;
67 }
68
69 public String getZone() {
70 return zone;
71 }
72
73 public void setZone(String zone) {
74 this.zone = zone;
75 }
76
77 public Map<String, String> getIndicators() {
78 return indicators;
79 }
80
81 public String getZonePicture() {
82 return zonePicture;
83 }
84
85 public String getFacadeDisplayName() {
86 return getService().getFacadeDisplayName(facade);
87 }
88
89 public String getZoneDisplayName() {
90 CoserRequest zonesRequest = createZonesRequest();
91 return getService().getZoneDisplayName(zonesRequest, zone);
92 }
93
94 @Override
95 public String execute() {
96
97 CoserRequest request = createIndicatorsRequest();
98 indicators = getService().toMap(request);
99 zonePicture = getService().getZonePictures().get(zone);
100
101 return SUCCESS;
102 }
103
104 // public String getFacadeDisplayName() {
105 // WebService webService = ServiceFactory.getWebService();
106 // String displayName = null;
107 // try {
108 // displayName = webService.getFacades().get(facade);
109 // } catch (CoserBusinessException ex) {
110 // throw new CoserWebException("Can't get facade display name", ex);
111 // }
112 // return displayName;
113 // }
114 //
115 // public String getZoneDisplayName() {
116 // WebService webService = ServiceFactory.getWebService();
117 // String displayName = null;
118 // try {
119 // displayName = webService.getZoneForFacade(facade, false, false).get(zone);
120 // } catch (CoserBusinessException ex) {
121 // throw new CoserWebException("Can't get zone display name", ex);
122 // }
123 // return displayName;
124 // }
125 //
126 // public String getSpeciesDisplayName() {
127 // WebService webService = ServiceFactory.getWebService();
128 // String displayName = null;
129 // try {
130 // displayName = webService.getSpecies(zone, false).get(species);
131 // } catch (CoserBusinessException ex) {
132 // throw new CoserWebException("Can't get species display name", ex);
133 // }
134 // return displayName;
135 // }
136 // @Override
137 // public String execute() {
138 //
139 // if (log.isInfoEnabled()) {
140 // log.info(String.format("Looking for indicator for zone %s and species %s", zone, species));
141 // }
142 //
143 // WebService webService = ServiceFactory.getWebService();
144 //
145 // Locale locale = getLocale();
146 //
147 // try {
148 // indicators = webService.getIndicators(zone, species, locale);
149 //
150 // zonePicture = webService.getZonePictures().get(zone);
151 // } catch (CoserBusinessException ex) {
152 // throw new CoserWebException("Can't get indicators", ex);
153 // }
154 //
155 // return SUCCESS;
156 // }
157 }