Coser-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
January 2011
- 1 participants
- 174 discussions
r527 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources/ftl coser-business/src/test/java/fr/ifremer/coser/services coser-web/src/main/java/fr/ifremer/coser/web/actions
by chatellier@users.labs.libre-entreprise.org 19 Jan '11
by chatellier@users.labs.libre-entreprise.org 19 Jan '11
19 Jan '11
Author: chatellier
Date: 2011-01-19 09:43:05 +0000 (Wed, 19 Jan 2011)
New Revision: 527
Log:
Ajout d'un pdf de d?\195?\169charge dans le zip de t?\195?\169l?\195?\169chargement des sources.
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
trunk/coser-business/src/main/resources/ftl/decharge.ftl
trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-19 09:42:39 UTC (rev 526)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-19 09:43:05 UTC (rev 527)
@@ -32,6 +32,7 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;
import java.io.Writer;
@@ -44,11 +45,13 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Properties;
import java.util.TreeMap;
import java.util.regex.Matcher;
import org.apache.commons.collections.map.MultiKeyMap;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -641,12 +644,83 @@
// send notification mails
sendNewResultNotifications();
+ // update data date
+ updateDataProperties();
} catch (IOException ex) {
throw new CoserBusinessException("Can't uncompress file", ex);
}
}
/**
+ * Met à jour certaines proprietes apres la mise à jour des données.
+ * @throws CoserBusinessException
+ */
+ protected void updateDataProperties() throws CoserBusinessException {
+
+ File webProperties = config.getWebPropertiesFile();
+
+ Properties props = new Properties();
+ InputStream iStream = null;
+ OutputStream oStream = null;
+ try {
+ if (webProperties.isFile()) {
+ iStream = new FileInputStream(webProperties);
+ props.load(iStream);
+ }
+
+ props.setProperty("updateDate", String.valueOf(new Date().getTime()));
+ oStream = new FileOutputStream(webProperties);
+ props.store(oStream, "Update data");
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't save properties file", ex);
+ }
+ finally {
+ IOUtils.closeQuietly(iStream);
+ IOUtils.closeQuietly(oStream);
+ }
+ }
+
+ /**
+ * Retourne la date de dernière mise à jour des données du site web.
+ *
+ * Retourne une date bidon, si pas de dernière mise à jour.
+ *
+ * @return last data update date
+ * @throws CoserBusinessException
+ */
+ public Date getLastDataUpdateDate() throws CoserBusinessException {
+ Date dataUpdateDate = null;
+ File webProperties = config.getWebPropertiesFile();
+ if (webProperties.isFile()) {
+ // get update date
+ Properties props = new Properties();
+ InputStream stream = null;
+ try {
+ stream = new FileInputStream(webProperties);
+ props.load(stream);
+
+ if (props.containsKey("updateDate")) {
+ String date = props.getProperty("updateDate");
+ long time = Long.parseLong(date);
+ dataUpdateDate = new Date(time);
+ }
+
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't read properties file", ex);
+ }
+ finally {
+ IOUtils.closeQuietly(stream);
+ }
+ }
+
+ if (dataUpdateDate == null) {
+ dataUpdateDate = new Date(0);
+ }
+
+ return dataUpdateDate;
+ }
+
+ /**
* Recupere dans un repertoire donné, les resultid des resultat (zone /
* sous-zone-campagne)
*
@@ -1486,7 +1560,7 @@
// load project (without data to get original file names)
Project project = projectService.openProject(projectFile.getName(), projectsDirectory);
- result = generateSourceZip(project, selectionFile);
+ result = generateSourceZip(project, selectionFile, resultFile, rsufiResult);
}
}
}
@@ -1506,10 +1580,12 @@
*
* @param project project
* @param selectionDirectory selection directory
+ * @param rsufiResultDirectory rsufi result directory (to get survey name)
+ * @param rsufiResult rsufi result (to get survey name)
* @return generated zip file
* @throws CoserBusinessException
*/
- protected File generateSourceZip(Project project, File selectionDirectory) throws CoserBusinessException {
+ protected File generateSourceZip(Project project, File selectionDirectory, File rsufiResultDirectory, RSufiResult rsufiResult) throws CoserBusinessException {
File resultZip = null;
@@ -1517,7 +1593,7 @@
File tempDir = FileUtil.createTempDirectory("coser-", ".tmp");
// pour que l'archive contiennent ce dossier
- File archiveDir = new File(tempDir, "coser-sources");
+ File archiveDir = new File(tempDir, project.getName());
// recupere les noms originaux des fichiers
// de selection et de nom de fichier dans le zip
@@ -1536,6 +1612,10 @@
FileUtils.copyFile(new File(selectionDirectory, lengthSeFileName), new File(archiveDir, lengthFileName));
FileUtils.copyFile(new File(selectionDirectory, strataSeFileName), new File(archiveDir, strataFileName));
+ // add decharge file
+ File dechargePDF = generateDechargePDF(rsufiResultDirectory, rsufiResult);
+ FileUtils.copyFile(dechargePDF, new File(archiveDir, "DechargeDonnees.pdf"));
+
// make zip
resultZip = File.createTempFile("coser-result", ".zip");
ZipUtil.compress(resultZip, archiveDir);
@@ -1548,4 +1628,58 @@
return resultZip;
}
+
+ /**
+ * Genere le PDF dynamique de decharge à partir du template freemarker.
+ *
+ * @param rsufiResultDirectory rsufi result directory (to get survey name)
+ * @param rsufiResult rsufi result (to get survey name)
+ * @return le fichier généré
+ * @throws CoserBusinessException
+ */
+ protected File generateDechargePDF(File rsufiResultDirectory, RSufiResult rsufiResult) throws CoserBusinessException {
+
+ File result = null;
+
+ try {
+
+ // get some info to put into pdf
+ Date updateDate = getLastDataUpdateDate();
+ String surveyName = projectService.getProjectSurveyName(rsufiResultDirectory, rsufiResult);
+
+ // render freemarker template
+ Template mapTemplate = freemarkerConfiguration.getTemplate("decharge.ftl");
+
+ Map<String, Object> root = new HashMap<String, Object>();
+ root.put("updateDate", updateDate);
+ root.put("surveyName", surveyName);
+
+ Writer out = new StringWriter();
+ mapTemplate.process(root, out);
+ out.flush();
+
+ // get content as w3c document
+ Document document = CoserUtils.parseDocument(out.toString());
+
+ // render template output as pdf
+ result = File.createTempFile("coserpdf", ".pdf");
+ result.deleteOnExit();
+ OutputStream os = new FileOutputStream(result);
+
+ ITextRenderer renderer = new ITextRenderer();
+ renderer.setDocument(document, null);
+ renderer.layout();
+ renderer.createPDF(os);
+
+ os.close();
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't generate decharge file", ex);
+ } catch (TemplateException ex) {
+ throw new CoserBusinessException("Can't generate decharge file", ex);
+ } catch (DocumentException ex) {
+ throw new CoserBusinessException("Can't generate decharge file", ex);
+ }
+
+ return result;
+ }
}
Modified: trunk/coser-business/src/main/resources/ftl/decharge.ftl
===================================================================
--- trunk/coser-business/src/main/resources/ftl/decharge.ftl 2011-01-19 09:42:39 UTC (rev 526)
+++ trunk/coser-business/src/main/resources/ftl/decharge.ftl 2011-01-19 09:43:05 UTC (rev 527)
@@ -1,79 +1,95 @@
-Réaction
-========
+<html>
+ <body>
+ <h2>Réaction</h2>
+ <p>
Merci d'avoir téléchargé des données de ce site. Si vous avez identifié des
problèmes dans ces données, ou souhaitez fournir des remarques pour aider à
améliorer le service, vous êtes invités à adresser un courriel à
l'administrateur du site (harmonie at ifremer.fr).
+</p>
-Important
-=========
-Les données téléchargées sont issues de la série CGFS.
-
+<h2>Important</h2>
+<p>
+Les données téléchargées sont issues de la série ${surveyName}.
+</p>
+<p>
Vous êtes invités à consulter les informations relatives à cette série de
campagnes... Ce site comprend des informations spécifiques concernant l'usage de
ces données, les limitations et les problèmes connus.
-
+</p>
+<p>
Vous vous engagez à citer la source de ces données dans tout produit et
publication utilisant ces données. En téléchargeant des données à partir du
site http://www.ifremer.fr/SIH-indices-campagnes/, vous acceptez les termes et
conditions d'usage décrites dans ce document et dans tout document cité dans ce
texte.
+</p>
-Contact
-=======
+<h2>Contact</h2>
+<p>
Pour toute question concernant les données téléchargées du site
http://www.ifremer.fr/SIH-indices-campagnes/, vous pouvez adresser un courriel à
l'administrateur du site (harmonie at ifremer.fr).
+</p>
-Informations particulières sur les données téléchargées
-=======================================================
+<h2>Informations particulières sur les données téléchargées</h2>
+<p>
Les données des campagnes halieutiques de ce site sont mises à libre disposition
pour téléchargement. En dépit des soins mis à la préparation de ces données, des
défauts inhérents à l'agrégation des informations peuvent persister.
-Par exemple :
+Par exemple :</p>
-* En dépit du fait que toutes les données de toutes les séries de campagnes
+<ul>
+<li>En dépit du fait que toutes les données de toutes les séries de campagnes
soient présentées selon le même format, sauf cas particuliers des différences
dans les stratégies d'observation empêchent la combinaison de données de
différentes campagnes dans une même analyse. Par exemple, la capturabilité
d'une même espèce varie selon le type d'engin d'échantillonnage utilisé.
Il en résulte que chaque engin capture un sous-ensemble particulier des
- biocénoses échantillonnées.
+ biocénoses échantillonnées.</li>
-* Une propriété commune aux séries d'observations à la mer est l'évolution dans
+<li>Une propriété commune aux séries d'observations à la mer est l'évolution dans
le temps de la compétence des équipes embarquées pour la détermination des
espèces. Il peut en résulter des apparitions, des disparitions ou des
assignations sous un même nom de taxons proches dans les jeux de données, non
- représentatifs de l'évolution des populations concernées dans l'écosystème.
+ représentatifs de l'évolution des populations concernées dans l'écosystème.</li>
-* Pour les campagnes d'une même série, des changements dans les procédures
+<li>Pour les campagnes d'une même série, des changements dans les procédures
d'échantillonnage, dans les caractéristiques des engins, dans la période de
réalisation de la campagne et la zone couverte peuvent influencer les captures.
Pour prévenir les risques de biais dans les analyses en raison de ces facteurs,
-les jeux de données doivent être préalablement filtrés adéquatement.
+les jeux de données doivent être préalablement filtrés adéquatement.</li>
+</ul>
+<p>
Il est vivement recommandé aux utilisateurs de données de les traiter avec
précaution. Si des utilisateurs s'interrogent sur la validité de données, ils
sont invités à contacter l'administrateur de la base de données
(harmonie at ifremer.fr).
+</p>
-Citation de l'origine des données
-=================================
-Ifremer ANNEE. Données des campagnes de surveillance halieutique de l’Ifremer.
-http://www.ifremer.fr/SIH-indices-campagnes/ (JOUR MOIS).
+<h2>Citation de l'origine des données</h2>
-Conditions d'usage des données
-==============================
-L'Ifremer met les données des campagnes de surveillance halieutique conduites
+<p>Ifremer ${updateDate?string("yyyy")}. Données des campagnes de surveillance halieutique de l’Ifremer.
+http://www.ifremer.fr/SIH-indices-campagnes/ (${updateDate?string("dd MMMM")}).</p>
+
+<h2>Conditions d'usage des données</h2>
+
+<p>L'Ifremer met les données des campagnes de surveillance halieutique conduites
par l'institut en libre accès, mais :
-- l'interprétation et l'usage approprié de ces données sont de la seule
- responsabilité de leurs utilisateurs,
-- les utilisateurs des données ne doivent d'aucune façon impliquer l'Ifremer en
+<ul>
+<li>l'interprétation et l'usage approprié de ces données sont de la seule
+ responsabilité de leurs utilisateurs,</li>
+<li>les utilisateurs des données ne doivent d'aucune façon impliquer l'Ifremer en
tant que fournisseur de données dans leurs résultats, conclusions et/ou
- recommandations.
-- la source des données doit être dûment citée,
+ recommandations.</li>
+<li>la source des données doit être dûment citée,
- les utilisateurs de données doivent respecter toutes les restrictions
d'usage et de reproduction des données, incluant les restrictions pour un
- usage commercial,
-- les utilisateurs des données doivent informer l'Ifremer de tout problème
- soupçonné dans les données.
+ usage commercial,</li>
+<li>les utilisateurs des données doivent informer l'Ifremer de tout problème
+ soupçonné dans les données.</li>
+</ul>
+</p>
+</body>
+</html>
\ No newline at end of file
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2011-01-19 09:42:39 UTC (rev 526)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2011-01-19 09:43:05 UTC (rev 527)
@@ -166,4 +166,18 @@
File file = webService.getMapFileAsPDF("Medits", "SPECIES1");
Assert.assertNotNull(file);
}
+
+ /**
+ * Test la simulation d'un téléchargement de données sources d'un projet.
+ *
+ * Generation du zip, freemarker, et pdf.
+ *
+ * @throws CoserBusinessException
+ */
+ @Test
+ public void testGetSourceZip() throws CoserBusinessException {
+ registerUploadedResult("/web/upload2.zip");
+ File file = webService.getSourceZip("testzone1", "fr");
+ Assert.assertNotNull(file);
+ }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java 2011-01-19 09:42:39 UTC (rev 526)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java 2011-01-19 09:43:05 UTC (rev 527)
@@ -36,6 +36,8 @@
import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
import fr.ifremer.coser.web.CoserWebConfig;
import fr.ifremer.coser.web.CoserWebException;
import fr.ifremer.coser.web.ServiceFactory;
@@ -79,35 +81,14 @@
@Override
public String execute() {
-
- CoserWebConfig config = ServiceFactory.getCoserConfig();
- File webProperties = config.getWebPropertiesFile();
- if (webProperties.isFile()) {
- // get update date
- Properties props = new Properties();
- InputStream stream = null;
- try {
- stream = new FileInputStream(webProperties);
- props.load(stream);
-
- if (props.containsKey("updateDate")) {
- String date = props.getProperty("updateDate");
- long time = Long.parseLong(date);
- dataUpdateDate = new Date(time);
- }
-
- } catch (IOException ex) {
- throw new CoserWebException("Can't save properties file", ex);
- }
- finally {
- IOUtils.closeQuietly(stream);
- }
+ WebService webService = ServiceFactory.getWebService();
+
+ try {
+ dataUpdateDate = webService.getLastDataUpdateDate();
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get last update date", ex);
}
-
- if (dataUpdateDate == null) {
- dataUpdateDate = new Date(0);
- }
return SUCCESS;
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java 2011-01-19 09:42:39 UTC (rev 526)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java 2011-01-19 09:43:05 UTC (rev 527)
@@ -23,17 +23,9 @@
package fr.ifremer.coser.web.actions;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Date;
-import java.util.Properties;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
@@ -112,8 +104,6 @@
WebService webService = ServiceFactory.getWebService();
try {
webService.registerNewUploadedResults(resultFile);
-
- updateDataProperties();
} catch (CoserBusinessException ex) {
throw new CoserWebException("Can't register new result file", ex);
}
@@ -136,33 +126,4 @@
return INPUT;
}
-
- /**
- * Met à jour certaines proprietes apres la mise à jour des données.
- */
- protected void updateDataProperties() {
-
- CoserWebConfig config = ServiceFactory.getCoserConfig();
- File webProperties = config.getWebPropertiesFile();
-
- Properties props = new Properties();
- InputStream iStream = null;
- OutputStream oStream = null;
- try {
- if (webProperties.isFile()) {
- iStream = new FileInputStream(webProperties);
- props.load(iStream);
- }
-
- props.setProperty("updateDate", String.valueOf(new Date().getTime()));
- oStream = new FileOutputStream(webProperties);
- props.store(oStream, "Update data");
- } catch (IOException ex) {
- throw new CoserWebException("Can't save properties file", ex);
- }
- finally {
- IOUtils.closeQuietly(iStream);
- IOUtils.closeQuietly(oStream);
- }
- }
}
1
0
r526 - trunk/coser-business/src/test/resources/web
by chatellier@users.labs.libre-entreprise.org 19 Jan '11
by chatellier@users.labs.libre-entreprise.org 19 Jan '11
19 Jan '11
Author: chatellier
Date: 2011-01-19 09:42:39 +0000 (Wed, 19 Jan 2011)
New Revision: 526
Log:
Modification d'un resultat pour autoriser le t?\195?\169l?\195?\169chargement des donn?\195?\169es (test)
Modified:
trunk/coser-business/src/test/resources/web/upload2.zip
Modified: trunk/coser-business/src/test/resources/web/upload2.zip
===================================================================
(Binary files differ)
1
0
r525 - in trunk/coser-web/src/main: java/fr/ifremer/coser/web/actions/source resources/fr/ifremer/coser/web webapp/WEB-INF/content webapp/WEB-INF/content/com webapp/WEB-INF/content/pop webapp/WEB-INF/content/source webapp/js
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: chatellier
Date: 2011-01-18 17:08:55 +0000 (Tue, 18 Jan 2011)
New Revision: 525
Log:
Source, pop, com.
Avvertissement qualit?\195?\169 avant t?\195?\169l?\195?\169chargement.
Added:
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java
trunk/coser-web/src/main/webapp/WEB-INF/content/source/source-quality.jsp
Modified:
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
trunk/coser-web/src/main/webapp/WEB-INF/content/com/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/com/graph.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/graph.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/quality.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp
trunk/coser-web/src/main/webapp/js/coser.js
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java 2011-01-18 17:08:55 UTC (rev 525)
@@ -0,0 +1,54 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions.source;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+/**
+ * Affiche l'avertissement qualité avant le téléchargement du zip.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SourceQualityAction extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 3385467755357775199L;
+
+ protected String zone;
+
+ public String getZone() {
+ return zone;
+ }
+
+ public void setZone(String zone) {
+ this.zone = zone;
+ }
+
+ public String execute() {
+ return SUCCESS;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-18 17:08:55 UTC (rev 525)
@@ -21,6 +21,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# #L%
###
+message.com.title=Indices de communaut\u00E9s
+message.com.paragraph1=Des indices de communaut\u00E9 sont calcul\u00E9s pour un ensemble d''esp\u00E8ces dans chaque s\u00E9rie. La liste des esp\u00E8ces incluses pour le calcul de chaque indice varie selon les donn\u00E9es disponibles pour la r\u00E9alisation des calculs.
message.layout.title=Populations and communities indices, resulting from Ifremer monitoring halieutics survey
message.layout.oceanicdatatitle=Gestion des donn\u00E9es des campagnes oc\u00E9anographiques
message.layout.oceanicdata1=le Syst\u00E8me d'informations scientifiques pour la mer de l'Ifremer (SISMER)
@@ -56,7 +58,15 @@
message.map.title=Cartes de distribution
message.map.warning=Warning
message.map.warningcontent=Les cartes pr\u00E9sent\u00E9es ne doivent pas \u00EAtre interpr\u00E9t\u00E9es comme des cartes de distribution des esp\u00E8ces mais comme celle des zones o\u00F9 elles sont captur\u00E9es lors des campagnes scientifiques. Les campagnes \u00E9tant r\u00E9alis\u00E9es avec des chaluts diff\u00E9rents et \u00E0 diff\u00E9rentes saisons, les esp\u00E8ces peuvent avoir des capturabilit\u00E9s tr\u00E8s diff\u00E9rentes entre les s\u00E9ries de campagnes, donc d''une zone \u00E0 l''autre.
+message.pop.title=Indices biologiques
+message.pop.paragraph1=Les indices pr\u00E9sent\u00E9s ont \u00E9t\u00E9 s\u00E9lectionn\u00E9s en r\u00E9f\u00E9rence \u00E0 leur aptitude \u00E0 renseigner sur l''impact de la p\u00EAche, en vue de leur int\u00E9gration dans des tableaux de bord d\u2019indicateurs d''\u00E9volution d''\u00E9cosyst\u00E8mes exploit\u00E9s par la p\u00EAche.
+message.pop.paragraph2=Les donn\u00E9es disponibles sur le site sont les valeurs de chaque indice. Les informations ont \u00E9t\u00E9 valid\u00E9es par un groupe de travail dans une approche int\u00E9grative d\u2019indicateurs de populations et de communaut\u00E9s. Les r\u00E9sultats sont donn\u00E9s par zone g\u00E9ographique et par esp\u00E8ce pour l''ensemble de la s\u00E9rie de donn\u00E9es disponible. L''utilisateur peut s\u00E9lectionner la zone g\u00E9ographique, la saison (dans le cas de s\u00E9ries saisonni\u00E8res), l''esp\u00E8ce et l''indice. Pour les s\u00E9lections pour lesquelles une information est disponible, le syst\u00E8me produit un graphe pr\u00E9sentant la distribution temporelle de l''indice, avec une repr\u00E9sentation de l''\u00E9cart-type. Il fournit la possibilit\u00E9 d\u2019extraire la table des donn\u00E9es correspondantes, incluant la valeur de l\u2019indice par ann\u00E9e, ainsi que son \u00E9cart-type et son coefficient de variation.
message.source.download=Download
+message.source.title=Donn\u00E9es source
+message.source.paragraph1=Les donn\u00E9es Source sont pr\u00E9sent\u00E9es selon quatre tables fournissant des informations de base \u00E9lev\u00E9es \u00E0 l''op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral un trait de chalut) et organis\u00E9es selon des unit\u00E9s g\u00E9ographiques d\u00E9finies en relation avec le plan d''\u00E9chantillonnage. Une table suppl\u00E9mentaire pr\u00E9sente le r\u00E9f\u00E9rentiel taxinomique associ\u00E9 aux donn\u00E9es.
+message.source.paragraph2=Le site ne contient des donn\u00E9es Source que pour une partie des s\u00E9ries de campagnes pour lesquelles des indices de populations et de communaut\u00E9s sont pr\u00E9sent\u00E9s. Pour un acc\u00E8s aux autres s\u00E9ries de donn\u00E9es de base, il convient de contacter l''administrateur du Syst\u00E8me d''informations halieutiques de l''Ifremer ({0}).
+message.source.paragraph3=Les donn\u00E9es de campagnes halieutiques sont constitu\u00E9es \u00E0 partir de stations d''\u00E9chantillonnage r\u00E9parties dans l''espace selon le principe de tirage stratifi\u00E9. La granularit\u00E9 des donn\u00E9es conditionne la partition g\u00E9ographique selon laquelle les indices de population et de communaut\u00E9 peuvent \u00EAtre \u00E9tablis.
+message.source.paragraph4=Les plans de zonage propos\u00E9s incluent le plan de r\u00E9f\u00E9rence correspondant au plan d''\u00E9chantillonnage, ainsi que des adaptations pour tenir compte des limites des sous-r\u00E9gions d\u00E9finies par la strat\u00E9gie marine europ\u00E9enne. Ils ont \u00E9t\u00E9 valid\u00E9s par un groupe de travail de l''Ifremer, apr\u00E8s exploration de la sensibilit\u00E9 de divers indices aux ajustements propos\u00E9s.
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
message.survey.paragraph2=Depuis une vingtaine d''ann\u00E9es, l''Ifremer organise des campagnes de p\u00EAche scientifique en mer du Nord, en Manche, en Atlantique et en M\u00E9diterran\u00E9e concernant les ressources d\u00E9mersales et benthiques. L''objectif prioritaire est de produire des indices d''abondance des principales esp\u00E8ces commerciales. Elles recueillent \u00E9galement des donn\u00E9es sur les esp\u00E8ces captur\u00E9es non commerciales. Elles contribuent ainsi aux connaissances n\u00E9cessaires au d\u00E9veloppement de l''approche \u00E9cosyst\u00E9mique des p\u00EAches, notamment dans le cadre de la politique commune des p\u00EAches et plus largement de la strat\u00E9gie marine de l''Union europ\u00E9enne.
@@ -119,8 +129,11 @@
message.survey.mediterranee.estcorse.medits3=Manuel des protocoles Medits, Version 3 (1999)
message.survey.mediterranee.estcorse.medits4=Manuel des protocoles Medits, Version 4 (2001)
message.survey.mediterranee.estcorse.medits5=Manuel des protocoles Medits, Version 5 (2007)
+message.quality.title=Avertissement Qualit\u00E9
message.quality.paragraph1=Bien que les donn\u00E9es aient \u00E9t\u00E9 pr\u00E9cautionneusement contr\u00F4l\u00E9es par l''Ifremer, des d\u00E9fauts inh\u00E9rents \u00E0 l''agr\u00E9gation des informations peuvent persister. Par exemple\u00A0:
message.quality.paragraph2=En d\u00E9pit du fait que toutes les donn\u00E9es de toutes les s\u00E9ries de campagnes soient pr\u00E9sent\u00E9es selon le m\u00EAme format, sauf cas particuliers des diff\u00E9rences dans les strat\u00E9gies d''observation emp\u00EAchent la combinaison de donn\u00E9es de diff\u00E9rentes campagnes dans une m\u00EAme analyse. Par exemple, la capturabilit\u00E9 d\'une m\u00EAme esp\u00E8ce varie selon le type d''engin d''\u00E9chantillonnage utilis\u00E9. Il en r\u00E9sulte que chaque engin capture un sous-ensemble particulier des bioc\u00E9noses \u00E9chantillonn\u00E9es.
message.quality.paragraph3=Une propri\u00E9t\u00E9 commune aux s\u00E9ries d''observations \u00E0 la mer est l''\u00E9volution dans le temps de la comp\u00E9tence des \u00E9quipes embarqu\u00E9es pour la d\u00E9termination des esp\u00E8ces. Il peut en r\u00E9sulter des apparitions, des disparitions ou des assignations sous un m\u00EAme nom de taxons proches dans les jeux de donn\u00E9es, non repr\u00E9sentatifs de l''\u00E9volution des populations concern\u00E9es dans l''\u00E9cosyst\u00E8me.
-message.quality.paragraph4=Pour les campagnes d\'une m\u00EAme s\u00E9rie, des changements dans les proc\u00E9dures d''\u00E9chantillonnage, dans les caract\u00E9ristiques des engins, dans la p\u00E9riode de r\u00E9alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr\u00E9venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn\u00E9es doivent \u00EAtre pr\u00E9alablement filtr\u00E9s ad\u00E9quatement.
+message.quality.paragraph4=Pour les campagnes d''une m\u00EAme s\u00E9rie, des changements dans les proc\u00E9dures d''\u00E9chantillonnage, dans les caract\u00E9ristiques des engins, dans la p\u00E9riode de r\u00E9alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr\u00E9venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn\u00E9es doivent \u00EAtre pr\u00E9alablement filtr\u00E9s ad\u00E9quatement.
message.quality.paragraph5=Il est vivement recommand\u00E9 aux utilisateurs de donn\u00E9es de les traiter avec pr\u00E9caution. Si des utilisateurs s''interrogent sur la validit\u00E9 de donn\u00E9es, ils sont invit\u00E9s \u00E0 contacter l''administrateur de la base de donn\u00E9es ({0}).
+message.quality.acceptance=Je reconnais avoir pris connaissance des documents et des restrictions associ\u00E9es et je m'''engage \u00E0 citer la source des donn\u00E9es.
+message.quality.notaccepted=Vous devez valider les conditions Avertissement Qualit\u00E9 !
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 17:08:55 UTC (rev 525)
@@ -21,7 +21,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# #L%
###
-message.layout.title=Indices de populations et de communauté issus des campagnes de surveillance halieutique de l''Ifremer
+message.com.title=Indices de communaut\u00E9s
+message.com.paragraph1=Des indices de communaut\u00E9 sont calcul\u00E9s pour un ensemble d''esp\u00E8ces dans chaque s\u00E9rie. La liste des esp\u00E8ces incluses pour le calcul de chaque indice varie selon les donn\u00E9es disponibles pour la r\u00E9alisation des calculs.
+message.layout.title=Indices de populations et de communaut\u00E9s issus des campagnes de surveillance halieutique de l''Ifremer
message.layout.oceanicdatatitle=Gestion des donn\u00E9es des campagnes oc\u00E9anographiques
message.layout.oceanicdata1=le Syst\u00E8me d'informations scientifiques pour la mer de l'Ifremer (SISMER)
message.layout.oceanicdata2=le Syst\u00E8me d'information halieutique de l'Ifremer (SIH)
@@ -56,7 +58,16 @@
message.map.title=Cartes de distribution
message.map.warning=Avertissement
message.map.warningcontent=Les cartes pr\u00E9sent\u00E9es ne doivent pas \u00EAtre interpr\u00E9t\u00E9es comme des cartes de distribution des esp\u00E8ces mais comme celle des zones o\u00F9 elles sont captur\u00E9es lors des campagnes scientifiques. Les campagnes \u00E9tant r\u00E9alis\u00E9es avec des chaluts diff\u00E9rents et \u00E0 diff\u00E9rentes saisons, les esp\u00E8ces peuvent avoir des capturabilit\u00E9s tr\u00E8s diff\u00E9rentes entre les s\u00E9ries de campagnes, donc d''une zone \u00E0 l''autre.
+message.pop.title=Indices biologiques
+message.pop.paragraph1=Les indices pr\u00E9sent\u00E9s ont \u00E9t\u00E9 s\u00E9lectionn\u00E9s en r\u00E9f\u00E9rence \u00E0 leur aptitude \u00E0 renseigner sur l''impact de la p\u00EAche, en vue de leur int\u00E9gration dans des tableaux de bord d\u2019indicateurs d''\u00E9volution d''\u00E9cosyst\u00E8mes exploit\u00E9s par la p\u00EAche.
+message.pop.paragraph2=Les donn\u00E9es disponibles sur le site sont les valeurs de chaque indice. Les informations ont \u00E9t\u00E9 valid\u00E9es par un groupe de travail dans une approche int\u00E9grative d\u2019indicateurs de populations et de communaut\u00E9s. Les r\u00E9sultats sont donn\u00E9s par zone g\u00E9ographique et par esp\u00E8ce pour l''ensemble de la s\u00E9rie de donn\u00E9es disponible. L''utilisateur peut s\u00E9lectionner la zone g\u00E9ographique, la saison (dans le cas de s\u00E9ries saisonni\u00E8res), l''esp\u00E8ce et l''indice. Pour les s\u00E9lections pour lesquelles une information est disponible, le syst\u00E8me produit un graphe pr\u00E9sentant la distribution temporelle de l''indice, avec une repr\u00E9sentation de l''\u00E9cart-type. Il fournit la possibilit\u00E9 d\u2019extraire la table des donn\u00E9es correspondantes, incluant la valeur de l\u2019indice par ann\u00E9e, ainsi que son \u00E9cart-type et son coefficient de variation.
message.source.download=T\u00E9l\u00E9charger
+message.source.title=Donn\u00E9es source
+message.source.title=Donn\u00E9es source
+message.source.paragraph1=Les donn\u00E9es Source sont pr\u00E9sent\u00E9es selon quatre tables fournissant des informations de base \u00E9lev\u00E9es \u00E0 l''op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral un trait de chalut) et organis\u00E9es selon des unit\u00E9s g\u00E9ographiques d\u00E9finies en relation avec le plan d''\u00E9chantillonnage. Une table suppl\u00E9mentaire pr\u00E9sente le r\u00E9f\u00E9rentiel taxinomique associ\u00E9 aux donn\u00E9es.
+message.source.paragraph2=Le site ne contient des donn\u00E9es Source que pour une partie des s\u00E9ries de campagnes pour lesquelles des indices de populations et de communaut\u00E9s sont pr\u00E9sent\u00E9s. Pour un acc\u00E8s aux autres s\u00E9ries de donn\u00E9es de base, il convient de contacter l''administrateur du Syst\u00E8me d''informations halieutiques de l''Ifremer ({0}).
+message.source.paragraph3=Les donn\u00E9es de campagnes halieutiques sont constitu\u00E9es \u00E0 partir de stations d''\u00E9chantillonnage r\u00E9parties dans l''espace selon le principe de tirage stratifi\u00E9. La granularit\u00E9 des donn\u00E9es conditionne la partition g\u00E9ographique selon laquelle les indices de population et de communaut\u00E9 peuvent \u00EAtre \u00E9tablis.
+message.source.paragraph4=Les plans de zonage propos\u00E9s incluent le plan de r\u00E9f\u00E9rence correspondant au plan d''\u00E9chantillonnage, ainsi que des adaptations pour tenir compte des limites des sous-r\u00E9gions d\u00E9finies par la strat\u00E9gie marine europ\u00E9enne. Ils ont \u00E9t\u00E9 valid\u00E9s par un groupe de travail de l''Ifremer, apr\u00E8s exploration de la sensibilit\u00E9 de divers indices aux ajustements propos\u00E9s.
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
message.survey.paragraph2=Depuis une vingtaine d''ann\u00E9es, l''Ifremer organise des campagnes de p\u00EAche scientifique en mer du Nord, en Manche, en Atlantique et en M\u00E9diterran\u00E9e concernant les ressources d\u00E9mersales et benthiques. L''objectif prioritaire est de produire des indices d''abondance des principales esp\u00E8ces commerciales. Elles recueillent \u00E9galement des donn\u00E9es sur les esp\u00E8ces captur\u00E9es non commerciales. Elles contribuent ainsi aux connaissances n\u00E9cessaires au d\u00E9veloppement de l''approche \u00E9cosyst\u00E9mique des p\u00EAches, notamment dans le cadre de la politique commune des p\u00EAches et plus largement de la strat\u00E9gie marine de l''Union europ\u00E9enne.
@@ -119,8 +130,11 @@
message.survey.mediterranee.estcorse.medits3=Manuel des protocoles Medits, Version 3 (1999)
message.survey.mediterranee.estcorse.medits4=Manuel des protocoles Medits, Version 4 (2001)
message.survey.mediterranee.estcorse.medits5=Manuel des protocoles Medits, Version 5 (2007)
+message.quality.title=Avertissement Qualit\u00E9
message.quality.paragraph1=Bien que les donn\u00E9es aient \u00E9t\u00E9 pr\u00E9cautionneusement contr\u00F4l\u00E9es par l''Ifremer, des d\u00E9fauts inh\u00E9rents \u00E0 l''agr\u00E9gation des informations peuvent persister. Par exemple\u00A0:
message.quality.paragraph2=En d\u00E9pit du fait que toutes les donn\u00E9es de toutes les s\u00E9ries de campagnes soient pr\u00E9sent\u00E9es selon le m\u00EAme format, sauf cas particuliers des diff\u00E9rences dans les strat\u00E9gies d''observation emp\u00EAchent la combinaison de donn\u00E9es de diff\u00E9rentes campagnes dans une m\u00EAme analyse. Par exemple, la capturabilit\u00E9 d\'une m\u00EAme esp\u00E8ce varie selon le type d''engin d''\u00E9chantillonnage utilis\u00E9. Il en r\u00E9sulte que chaque engin capture un sous-ensemble particulier des bioc\u00E9noses \u00E9chantillonn\u00E9es.
message.quality.paragraph3=Une propri\u00E9t\u00E9 commune aux s\u00E9ries d''observations \u00E0 la mer est l''\u00E9volution dans le temps de la comp\u00E9tence des \u00E9quipes embarqu\u00E9es pour la d\u00E9termination des esp\u00E8ces. Il peut en r\u00E9sulter des apparitions, des disparitions ou des assignations sous un m\u00EAme nom de taxons proches dans les jeux de donn\u00E9es, non repr\u00E9sentatifs de l''\u00E9volution des populations concern\u00E9es dans l''\u00E9cosyst\u00E8me.
-message.quality.paragraph4=Pour les campagnes d\'une m\u00EAme s\u00E9rie, des changements dans les proc\u00E9dures d''\u00E9chantillonnage, dans les caract\u00E9ristiques des engins, dans la p\u00E9riode de r\u00E9alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr\u00E9venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn\u00E9es doivent \u00EAtre pr\u00E9alablement filtr\u00E9s ad\u00E9quatement.
+message.quality.paragraph4=Pour les campagnes d''une m\u00EAme s\u00E9rie, des changements dans les proc\u00E9dures d''\u00E9chantillonnage, dans les caract\u00E9ristiques des engins, dans la p\u00E9riode de r\u00E9alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr\u00E9venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn\u00E9es doivent \u00EAtre pr\u00E9alablement filtr\u00E9s ad\u00E9quatement.
message.quality.paragraph5=Il est vivement recommand\u00E9 aux utilisateurs de donn\u00E9es de les traiter avec pr\u00E9caution. Si des utilisateurs s''interrogent sur la validit\u00E9 de donn\u00E9es, ils sont invit\u00E9s \u00E0 contacter l''administrateur de la base de donn\u00E9es ({0}).
+message.quality.acceptance=Je reconnais avoir pris connaissance des documents et des restrictions associ\u00E9es et je m'''engage \u00E0 citer la source des donn\u00E9es.
+message.quality.notaccepted=Vous devez valider les conditions Avertissement Qualit\u00E9 !
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/com/facade.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/com/facade.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/facade.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.com.title" /></title>
</head>
<body>
+ <h2><s:text name="message.com.title" /></h2>
+
<img src="<s:url value='/images/zonesmap.jpg' />" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/com/graph.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/com/graph.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/graph.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -24,13 +24,16 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
-
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.com.title" /></title>
</head>
<body>
+ <h2><s:text name="message.com.title" /></h2>
+
+ <p><s:text name="message.com.paragraph1" /></p>
+
<img src="<s:url action='graph-data'>
<s:param name="zone" value="%{zone}" />
<s:param name="indicator" value="%{indicator}" />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -24,12 +24,14 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
-
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.com.title" /></title>
</head>
<body>
+
+ <h2><s:text name="message.com.title" /></h2>
+
<img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.com.title" /></title>
</head>
<body>
+ <h2><s:text name="message.com.title" /></h2>
+
<!-- utilisé dynamiquement par le script JS -->
<s:iterator value="zonesPictures.entrySet()">
<div id="coserzonemap<s:property value='%{key}' />" style="display:none">
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/facade.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/facade.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/facade.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.pop.title" /></title>
</head>
<body>
+ <h2><s:text name="message.pop.title" /></h2>
+
<img src="<s:url value='/images/zonesmap.jpg' />" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/graph.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/graph.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/graph.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -27,10 +27,15 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.pop.title" /></title>
</head>
<body>
+ <h2><s:text name="message.pop.title" /></h2>
+
+ <p><s:text name="message.pop.paragraph1" /></p>
+ <p><s:text name="message.pop.paragraph2" /></p>
+
<img src="<s:url action='graph-data'>
<s:param name="zone" value="%{zone}" />
<s:param name="species" value="%{species}" />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -27,10 +27,12 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.pop.title" /></title>
</head>
<body>
+ <h2><s:text name="message.pop.title" /></h2>
+
<img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -27,10 +27,12 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.pop.title" /></title>
</head>
<body>
+ <h2><s:text name="message.pop.title" /></h2>
+
<img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.pop.title" /></title>
</head>
<body>
+ <h2><s:text name="message.pop.title" /></h2>
+
<!-- utilisé dynamiquement par le script JS -->
<s:iterator value="zonesPictures.entrySet()">
<div id="coserzonemap<s:property value='%{key}' />" style="display:none">
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/quality.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/quality.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/quality.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -30,9 +30,7 @@
</head>
<body>
- <div class="maintitle">
- <s:text name="message.quality.title" />
- </div>
+ <h2><s:text name="message.quality.title" /></h2>
<p><s:text name="message.quality.paragraph1" /></p>
<ul>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,11 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.source.title" /></title>
</head>
<body>
-
+ <h2><s:text name="message.source.title" /></h2>
+
<img src="<s:url value='/images/zonesmap.jpg' />" />
<br />
Added: trunk/coser-web/src/main/webapp/WEB-INF/content/source/source-quality.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/source-quality.jsp (rev 0)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/source-quality.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -0,0 +1,59 @@
+<!--
+ #%L
+ Coser :: Web
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<%@taglib uri="/struts-tags" prefix="s" %>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title><s:text name="message.source.title" /></title>
+ </head>
+ <body>
+
+ <h2><s:text name="message.source.title" /></h2>
+
+ <h3><s:text name="message.quality.title" /></h3>
+
+ <p><s:text name="message.quality.paragraph1" /></p>
+ <ul>
+ <li><s:text name="message.quality.paragraph2" /></li>
+ <li><s:text name="message.quality.paragraph3" /></li>
+ <li><s:text name="message.quality.paragraph4" /></li>
+ </ul>
+ <p>
+ <s:text name="message.quality.paragraph5">
+ <s:param value="adminEmail"/>
+ </s:text>
+ </p>
+
+ <p>
+ <input type="checkbox" id="coserResultCondition" />
+ <s:text name="message.quality.acceptance" />
+ </p>
+
+ <s:a action="source-data" onclick="return coserCheckConditionAcceptance('coserResultCondition', '%{getText('message.quality.notaccepted')}')">
+ <s:param name="zone" value="%{zone}" />
+ <s:text name="message.source.download"></s:text>
+ </s:a>.
+ </body>
+</html>
\ No newline at end of file
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,13 +26,25 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.source.title" /></title>
</head>
<body>
+ <h2><s:text name="message.source.title" /></h2>
+
+ <p><s:text name="message.source.paragraph1" /></p>
+ <p>
+ <s:text name="message.source.paragraph2">
+ <s:param><a href="mailto:harmonie at ifremer.fr">harmonie at ifremer.fr</a></s:param>
+ </s:text>
+ </p>
+
+ <p><s:text name="message.source.paragraph3" /></p>
+ <p><s:text name="message.source.paragraph4" /></p>
+
<img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
- <s:a action="source-data">
+ <s:a action="source-quality">
<s:param name="zone" value="%{zone}" />
<s:text name="message.source.download"></s:text>
</s:a>.
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp 2011-01-18 17:08:55 UTC (rev 525)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.source.title" /></title>
</head>
<body>
+ <h2><s:text name="message.source.title" /></h2>
+
<!-- utilisé dynamiquement par le script JS -->
<s:iterator value="zonesPictures.entrySet()">
<div id="coserzonemap<s:property value='%{key}' />" style="display:none">
Modified: trunk/coser-web/src/main/webapp/js/coser.js
===================================================================
--- trunk/coser-web/src/main/webapp/js/coser.js 2011-01-18 15:46:06 UTC (rev 524)
+++ trunk/coser-web/src/main/webapp/js/coser.js 2011-01-18 17:08:55 UTC (rev 525)
@@ -1,7 +1,17 @@
-
+// affiche la carte correspondant à la selection dans la liste
function coserShowSelectedZoneMap(select, prefix) {
// cache toutes les autres cartes
$('div[id^=' + prefix + ']').hide();
// affiche la carte selectionnee
$('#' + prefix + $(select).val()).show();
+}
+
+// affiche un message si l'utilsateur n'a pas validé les conditions
+function coserCheckConditionAcceptance(checkboxid, message) {
+ var result = true;
+ if (!$('#' + checkboxid).attr('checked')) {
+ window.alert(message);
+ result = false;
+ }
+ return result;
}
\ No newline at end of file
1
0
r524 - trunk/coser-web/src/main/resources/fr/ifremer/coser/web
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: chatellier
Date: 2011-01-18 15:46:06 +0000 (Tue, 18 Jan 2011)
New Revision: 524
Log:
Encoding fix
Modified:
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:44:04 UTC (rev 523)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:46:06 UTC (rev 524)
@@ -60,7 +60,7 @@
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
message.survey.paragraph2=Depuis une vingtaine d''ann\u00E9es, l''Ifremer organise des campagnes de p\u00EAche scientifique en mer du Nord, en Manche, en Atlantique et en M\u00E9diterran\u00E9e concernant les ressources d\u00E9mersales et benthiques. L''objectif prioritaire est de produire des indices d''abondance des principales esp\u00E8ces commerciales. Elles recueillent \u00E9galement des donn\u00E9es sur les esp\u00E8ces captur\u00E9es non commerciales. Elles contribuent ainsi aux connaissances n\u00E9cessaires au d\u00E9veloppement de l''approche \u00E9cosyst\u00E9mique des p\u00EAches, notamment dans le cadre de la politique commune des p\u00EAches et plus largement de la strat\u00E9gie marine de l''Union europ\u00E9enne.
-message.survey.dataengintitle=Diff\u00E9rents engins d''\u00E9chantillonnage sont utilis\u00E9s :
+message.survey.dataengintitle=Diff\u00E9rents engins d''\u00E9chantillonnage sont utilis\u00E9s :
message.survey.dataenginfond=Un chalut de fond \u00E0 grande ouverture verticale pour l''observation des ressources d\u00E9mersales, sur les plateaux continentaux et le haut des pentes continentales (accores) en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne, golfe du Lion et Est de la Corse,
message.survey.dataenginperche=Un chalut \u00E0 perche pour les zones tr\u00E8s c\u00F4ti\u00E8res et les estuaires lors des campagnes visant les juv\u00E9niles de poissons plats : baies de Somme et de Vilaine,
message.survey.dataengincasier=Un \u00E9chantillonnage au casier pour les campagnes d''\u00E9valuation des grands crustac\u00E9s, en particulier le homard, aux abords du cap de Flamanville.
@@ -73,8 +73,8 @@
message.survey.merdunord.sudmerdunord=Sud mer du Nord
message.survey.merdunord.sudmerdunord.desc=Contribution fran\u00E7aise d''un mois \u00E0 la campagne internationale IBTS (International Bottom Trawl Survey) au premier trimestre, tous les ans depuis 1980, au chalut de fond \u00E0 grande ouverture verticale. En moyenne, le navire fran\u00E7ais fait 58 chalutages par an. Le sud de la mer du Nord est couvert par 4 navires (fran\u00E7ais, belge, danois et allemand) qui r\u00E9alisent en tout environ 200 traits par an. Chaque trait dure une demi-heure et couvre une surface d\'environ 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 678\u00A0000\u00A0km\u00B2 de la zone.
message.survey.merdunord.sudmerdunord.plus=Pour en savoir plus sur les campagnes IBTS
-message.survey.merdunord.sudmerdunord.ibts6=Manuel des protocoles IBTS - Révision VI (1999)
-message.survey.merdunord.sudmerdunord.ibts7=Manuel des protocoles IBTS - Révision VII (2004)
+message.survey.merdunord.sudmerdunord.ibts6=Manuel des protocoles IBTS - R\u00E9vision VI (1999)
+message.survey.merdunord.sudmerdunord.ibts7=Manuel des protocoles IBTS - R\u00E9vision VII (2004)
message.survey.mancheorientale=Fa\u00E7ade Manche orientale
message.survey.mancheorientale.mancheorientale=Manche orientale
message.survey.mancheorientale.mancheorientale.desc=Campagne fran\u00E7aise CGFS (Channel Ground Fish Survey) d''un mois en octobre, coordonn\u00E9e au plan international avec les campagnes IBTS. La campagne a lieu tous les ans depuis 1988. En moyenne 90 traits d''une demi-heure, au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d''environ 0,03 km\u00B2. Cette campagne est repr\u00E9sentative des 70 748 km\u00B2 de la Manche orientale.
1
0
r523 - trunk/coser-web/src/main/webapp/styles
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: chatellier
Date: 2011-01-18 15:44:04 +0000 (Tue, 18 Jan 2011)
New Revision: 523
Log:
Some css fix
Modified:
trunk/coser-web/src/main/webapp/styles/coser.css
Modified: trunk/coser-web/src/main/webapp/styles/coser.css
===================================================================
--- trunk/coser-web/src/main/webapp/styles/coser.css 2011-01-18 15:34:01 UTC (rev 522)
+++ trunk/coser-web/src/main/webapp/styles/coser.css 2011-01-18 15:44:04 UTC (rev 523)
@@ -314,7 +314,7 @@
text-transform: uppercase;
}
-h3 {
+.col_droite h3 {
text-transform: uppercase;
color: #ffffff;
font-weight: normal;
@@ -521,11 +521,11 @@
height: 23px;
}
-#middle .col_droite ul li a {
+a {
color: #2C9EFF;
}
-#middle .col_droite ul li a:hover {
+a:hover {
color: #ffe600;
}
@@ -630,4 +630,4 @@
.barre_select select {
background-color: #fff;
border: 1px solid #ccc;
-}
\ No newline at end of file
+}
1
0
r522 - in trunk/coser-web/src/main: resources/fr/ifremer/coser/web webapp/WEB-INF/content/map
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: chatellier
Date: 2011-01-18 15:34:01 +0000 (Tue, 18 Jan 2011)
New Revision: 522
Log:
Ajout des titres et ?\195?\169l?\195?\169ments manquant sur les cartes.
Modified:
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-18 15:20:22 UTC (rev 521)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-18 15:34:01 UTC (rev 522)
@@ -50,8 +50,12 @@
message.map.citationtitle=Citation
message.map.citation=Trenkel V.M., O. Berthel\u00E9, P. Lorance, J.A. Bertrand, A. Brind''Amour, M.L. Cochard, F. Coppin, J.P. Leaut\u00E9, J.C. Mah\u00E9, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. V\u00E9rin, 2009. Grands invert\u00E9br\u00E9s et poissons observ\u00E9s par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH : 09-003. {0}. 100 p.
message.map.downloadaspdf=Download as PDF
+message.map.linkarchimer=Acc\u00E8s \u00E0 l''atlas : {0}
message.map.paragraph1=L''objectif de cet atlas est de donner un aper\u00E7u de la distribution spatiale des esp\u00E8ces de poissons et de certains invert\u00E9br\u00E9s marin \u00E0 partir des observations des campagnes de p\u00EAche scientifiques.
message.map.paragraph2=Pour chaque zone un quadrillage syst\u00E9matique a \u00E9t\u00E9 d\u00E9fini, puis la densit\u00E9 moyenne par km\u00B2 dans chaque cellule a \u00E9t\u00E9 calcul\u00E9e en utilisant les observations de toute la p\u00E9riode. Pour la repr\u00E9sentation cartographique, les cellules avec des densit\u00E9s moyenne correspondant aux quartiles de densit\u00E9 ont re\u00E7u la m\u00EAme couleur\u00A0: bleu\u00A0: esp\u00E8ce jamais observ\u00E9e, jaune clair\u00A0: densit\u00E9 moyenne entre [0 et 25\u00A0%[; jaune fonc\u00E9\u00A0: [25-50\u00A0%[, orange\u00A0: [50-75\u00A0%[ et rouge\u00A0: [75-100\u00A0%]. Donc, les zones o\u00F9 se trouvent les densit\u00E9s les plus \u00E9lev\u00E9es en moyenne sont repr\u00E9sent\u00E9es en rouge.
+message.map.title=Cartes de distribution
+message.map.warning=Warning
+message.map.warningcontent=Les cartes pr\u00E9sent\u00E9es ne doivent pas \u00EAtre interpr\u00E9t\u00E9es comme des cartes de distribution des esp\u00E8ces mais comme celle des zones o\u00F9 elles sont captur\u00E9es lors des campagnes scientifiques. Les campagnes \u00E9tant r\u00E9alis\u00E9es avec des chaluts diff\u00E9rents et \u00E0 diff\u00E9rentes saisons, les esp\u00E8ces peuvent avoir des capturabilit\u00E9s tr\u00E8s diff\u00E9rentes entre les s\u00E9ries de campagnes, donc d''une zone \u00E0 l''autre.
message.source.download=Download
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:20:22 UTC (rev 521)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:34:01 UTC (rev 522)
@@ -50,8 +50,12 @@
message.map.citationtitle=Citation
message.map.citation=Trenkel V.M., O. Berthel\u00E9, P. Lorance, J.A. Bertrand, A. Brind''Amour, M.L. Cochard, F. Coppin, J.P. Leaut\u00E9, J.C. Mah\u00E9, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. V\u00E9rin, 2009. Grands invert\u00E9br\u00E9s et poissons observ\u00E9s par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH : 09-003. {0}. 100 p.
message.map.downloadaspdf=T\u00E9l\u00E9charger en PDF
+message.map.linkarchimer=Acc\u00E8s \u00E0 l''atlas : {0}
message.map.paragraph1=L''objectif de cet atlas est de donner un aper\u00E7u de la distribution spatiale des esp\u00E8ces de poissons et de certains invert\u00E9br\u00E9s marin \u00E0 partir des observations des campagnes de p\u00EAche scientifiques.
message.map.paragraph2=Pour chaque zone un quadrillage syst\u00E9matique a \u00E9t\u00E9 d\u00E9fini, puis la densit\u00E9 moyenne par km\u00B2 dans chaque cellule a \u00E9t\u00E9 calcul\u00E9e en utilisant les observations de toute la p\u00E9riode. Pour la repr\u00E9sentation cartographique, les cellules avec des densit\u00E9s moyenne correspondant aux quartiles de densit\u00E9 ont re\u00E7u la m\u00EAme couleur\u00A0: bleu\u00A0: esp\u00E8ce jamais observ\u00E9e, jaune clair\u00A0: densit\u00E9 moyenne entre [0 et 25\u00A0%[; jaune fonc\u00E9\u00A0: [25-50\u00A0%[, orange\u00A0: [50-75\u00A0%[ et rouge\u00A0: [75-100\u00A0%]. Donc, les zones o\u00F9 se trouvent les densit\u00E9s les plus \u00E9lev\u00E9es en moyenne sont repr\u00E9sent\u00E9es en rouge.
+message.map.title=Cartes de distribution
+message.map.warning=Avertissement
+message.map.warningcontent=Les cartes pr\u00E9sent\u00E9es ne doivent pas \u00EAtre interpr\u00E9t\u00E9es comme des cartes de distribution des esp\u00E8ces mais comme celle des zones o\u00F9 elles sont captur\u00E9es lors des campagnes scientifiques. Les campagnes \u00E9tant r\u00E9alis\u00E9es avec des chaluts diff\u00E9rents et \u00E0 diff\u00E9rentes saisons, les esp\u00E8ces peuvent avoir des capturabilit\u00E9s tr\u00E8s diff\u00E9rentes entre les s\u00E9ries de campagnes, donc d''une zone \u00E0 l''autre.
message.source.download=T\u00E9l\u00E9charger
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2011-01-18 15:20:22 UTC (rev 521)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2011-01-18 15:34:01 UTC (rev 522)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.map.title" /></title>
</head>
<body>
+ <h2><s:text name="message.map.title" /></h2>
+
<img src="<s:url value='/images/zonesmap.jpg' />" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-18 15:20:22 UTC (rev 521)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-18 15:34:01 UTC (rev 522)
@@ -24,15 +24,21 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
-
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.map.title" /></title>
</head>
<body>
+ <h2><s:text name="message.map.title" /></h2>
+
<p><s:text name="message.map.paragraph1" /></p>
<p><s:text name="message.map.paragraph2" /></p>
+
+ <p style="border: 1px solid black">
+ <span style="font-weight:bold"><s:text name="message.map.warning" /></span><br />
+ <s:text name="message.map.warningcontent" />
+ </p>
<img src="<s:url action='map-data'>
<s:param name="survey" value="%{survey}" />
@@ -46,6 +52,11 @@
</s:a>.</p>
<p>
+ <s:text name="message.map.linkarchimer">
+ <s:param><a href="http://archimer.ifremer.fr/doc/00000/6976/">http://archimer.ifremer.fr/doc/00000/6976/</a></s:param>
+ </s:text>
+ </p>
+ <p>
<span style="font-weight:bold"><s:text name="message.map.citationtitle" /></span> : <s:text name="message.map.citation">
<s:param><a href="http://archimer.ifremer.fr/doc/00000/6976/">http://archimer.ifremer.fr/doc/00000/6976/</a></s:param>
</s:text>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp 2011-01-18 15:20:22 UTC (rev 521)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp 2011-01-18 15:34:01 UTC (rev 522)
@@ -24,13 +24,14 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
-
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.map.title" /></title>
</head>
<body>
+ <h2><s:text name="message.map.title" /></h2>
+
<img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp 2011-01-18 15:20:22 UTC (rev 521)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp 2011-01-18 15:34:01 UTC (rev 522)
@@ -26,10 +26,12 @@
<%@taglib uri="/struts-tags" prefix="s" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Coser</title>
+ <title><s:text name="message.map.title" /></title>
</head>
<body>
+ <h2><s:text name="message.map.title" /></h2>
+
<img src="<s:url value='/images/zonesmap.jpg' />" />
<br />
1
0
r521 - in trunk: . coser-business coser-business/src/main/java/fr/ifremer/coser coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources coser-business/src/main/resources/ftl coser-business/src/test/java/fr/ifremer/coser coser-business/src/test/java/fr/ifremer/coser/services coser-web/src/main/java/fr/ifremer/coser/web/actions/map coser-web/src/main/java/fr/ifremer/coser/web/actions/source coser-web/src/main/resources coser-web/src/main/resources/fr/ifremer/co
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: chatellier
Date: 2011-01-18 15:20:22 +0000 (Tue, 18 Jan 2011)
New Revision: 521
Log:
T?\195?\169l?\195?\169chargement des cartes en PDF
Added:
trunk/coser-business/src/main/resources/ftl/
trunk/coser-business/src/main/resources/ftl/map.ftl
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java
Removed:
trunk/coser-web/src/main/resources/ftl/
Modified:
trunk/coser-business/pom.xml
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
trunk/coser-business/src/test/java/fr/ifremer/coser/CoserUtilsTest.java
trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp
trunk/pom.xml
Modified: trunk/coser-business/pom.xml
===================================================================
--- trunk/coser-business/pom.xml 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-business/pom.xml 2011-01-18 15:20:22 UTC (rev 521)
@@ -102,6 +102,10 @@
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ </dependency>
</dependencies>
<name>Coser :: Business</name>
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -25,6 +25,8 @@
package fr.ifremer.coser;
+import java.io.IOException;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
@@ -32,8 +34,15 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.apache.commons.lang.StringUtils;
import org.nuiton.util.StringUtil;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
/**
* Coser utility class.
@@ -128,4 +137,25 @@
List<String> strList = Arrays.asList(strArray);
return strList;
}
+
+ /**
+ * Convert string to {@link Document}.
+ *
+ * @param content content
+ * @return document
+ * @throws IOException
+ */
+ public static Document parseDocument(String content) throws IOException {
+ Document result = null;
+ try {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ result = builder.parse(new InputSource(new StringReader(content)));
+ } catch (ParserConfigurationException e) {
+ throw new IOException(e);
+ } catch (SAXException e) {
+ throw new IOException(e);
+ }
+ return result;
+ }
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -86,7 +86,7 @@
import fr.ifremer.coser.storage.DataStorage;
/**
- * Publication service (charts, reports, export...)
+ * Publication service (charts, reports, export, pdf...)
*
* @author chatellier
* @version $Revision$
@@ -714,6 +714,7 @@
* @param resultDirectory
* @param rsufiResult
* @param species
+ * @param indicator
* @param locale
* @return
* @throws CoserBusinessException
@@ -773,7 +774,6 @@
}
return result;
-
}
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -30,7 +30,11 @@
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import java.io.Writer;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
@@ -38,6 +42,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
@@ -50,7 +55,6 @@
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
@@ -62,7 +66,11 @@
import org.nuiton.util.FileUtil;
import org.nuiton.util.StringUtil;
import org.nuiton.util.ZipUtil;
+import org.w3c.dom.Document;
+import org.xhtmlrenderer.pdf.ITextRenderer;
+import com.lowagie.text.DocumentException;
+
import fr.ifremer.coser.CoserBusinessConfig;
import fr.ifremer.coser.CoserBusinessException;
import fr.ifremer.coser.CoserConstants;
@@ -75,6 +83,10 @@
import fr.ifremer.coser.storage.MemoryDataStorage;
import fr.ifremer.coser.util.ProgressMonitor;
import fr.ifremer.coser.util.ProgressStream;
+import freemarker.cache.ClassTemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
/**
* Service specifique à l'interface web de visualisation.
@@ -111,12 +123,25 @@
/** Zones map (etat du service). */
protected DataStorage zonesMap;
+ /** Freemarker */
+ protected Configuration freemarkerConfiguration;
+
public WebService(CoserBusinessConfig config) {
this.config = config;
-
+
importService = new ImportService(config);
projectService = new ProjectService(config);
publicationService = new PublicationService(config);
+
+ freemarkerConfiguration = new Configuration();
+
+ // needed to overwrite "Defaults to default system encoding."
+ // fix encoding issue on some systems
+ freemarkerConfiguration.setEncoding(Locale.getDefault(), "UTF-8");
+
+ // specific template loader to get template from jars (classpath)
+ ClassTemplateLoader templateLoader = new ClassTemplateLoader(WebService.class, "/ftl");
+ freemarkerConfiguration.setTemplateLoader(templateLoader);
}
/**
@@ -1364,8 +1389,57 @@
return result;
}
-
+
/**
+ * Generate map file into pdf file.
+ *
+ * @param survey survey
+ * @param species species
+ * @return pdf file
+ * @throws CoserBusinessException
+ */
+ public File getMapFileAsPDF(String survey, String species) throws CoserBusinessException {
+
+ File result = null;
+
+ try {
+ // render freemarker template
+ File mapFile = getMapFile(survey, species);
+
+ Template mapTemplate = freemarkerConfiguration.getTemplate("map.ftl");
+ Map<String, Object> root = new HashMap<String, Object>();
+ root.put("mapFile", mapFile.getAbsolutePath());
+
+ Writer out = new StringWriter();
+ mapTemplate.process(root, out);
+ out.flush();
+
+ // get content as w3c document
+ Document document = CoserUtils.parseDocument(out.toString());
+
+ // render template output as pdf
+ result = File.createTempFile("coserpdf", ".pdf");
+ result.deleteOnExit();
+ OutputStream os = new FileOutputStream(result);
+
+ ITextRenderer renderer = new ITextRenderer();
+ renderer.setDocument(document, null);
+ renderer.layout();
+ renderer.createPDF(os);
+
+ os.close();
+
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't generate pdf with map", ex);
+ } catch (TemplateException ex) {
+ throw new CoserBusinessException("Can't generate pdf with map", ex);
+ } catch (DocumentException ex) {
+ throw new CoserBusinessException("Can't generate pdf with map", ex);
+ }
+ return result;
+ }
+
+ /**
* Genere un fichier zip des sources d'un projet.
*
* Contient:
Added: trunk/coser-business/src/main/resources/ftl/map.ftl
===================================================================
--- trunk/coser-business/src/main/resources/ftl/map.ftl (rev 0)
+++ trunk/coser-business/src/main/resources/ftl/map.ftl 2011-01-18 15:20:22 UTC (rev 521)
@@ -0,0 +1,17 @@
+<html>
+ <body><p>L'objectif de cet atlas est de donner un aperçu de la distribution
+ spatiale des espèces de poissons et de certains invertébrés marin à partir
+ des observations des campagnes de pêche scientifiques.</p>
+ <p>
+Pour chaque zone un quadrillage systématique a été défini, puis la densité
+moyenne par km² dans chaque cellule a été calculée en utilisant les observations
+de toute la période. Pour la représentation cartographique, les cellules avec
+des densités moyenne correspondant aux quartiles de densité ont reçu la même
+couleur : bleu : espèce jamais observée, jaune clair : densité moyenne entre
+[0 et 25 %[; jaune foncé : [25-50 %[, orange : [50-75 %[ et rouge : [75-100 %].
+Donc, les zones où se trouvent les densités les plus élevées en moyenne sont
+représentées en rouge.</p>
+
+<img src="file://${mapFile}" />
+</body>
+</html>
\ No newline at end of file
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/CoserUtilsTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/CoserUtilsTest.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/CoserUtilsTest.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -25,6 +25,8 @@
package fr.ifremer.coser;
+import java.io.IOException;
+
import org.junit.Assert;
import org.junit.Test;
@@ -48,4 +50,23 @@
Assert.assertEquals("cap.tu.res_se.csv", CoserUtils.addSuffixBeforeExtension("cap.tu.res.csv", CoserConstants.STORAGE_SELECTION_SUFFIX));
Assert.assertEquals("captures_co", CoserUtils.addSuffixBeforeExtension("captures", CoserConstants.STORAGE_CONTROL_SUFFIX));
}
+
+ /**
+ * Test le parsing xml.
+ * @throws IOException
+ */
+ @Test
+ public void testParseDocument() throws IOException {
+ Assert.assertNotNull(CoserUtils.parseDocument("<html><body>test</body></html>"));
+ }
+
+ /**
+ * Test le parsing xml avec erreur.
+ * @throws IOException
+ */
+ @Test(expected=IOException.class)
+ public void testParseDocumentError() throws IOException {
+ Assert.assertNotNull(CoserUtils.parseDocument("<html>"));
+ }
+
}
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -69,6 +69,18 @@
}
/**
+ * Simule la publication de nouveaux resultats (uplaod client lourd).
+ *
+ * @param path result to upload
+ * @throws CoserBusinessException
+ */
+ protected void registerUploadedResult(String path) throws CoserBusinessException {
+ URL firstUpload = WebServiceTest.class.getResource(path);
+ File firstUploadFile = new File(firstUpload.getFile());
+ webService.registerNewUploadedResults(firstUploadFile);
+ }
+
+ /**
* Test de lecture du fichier des indicateurs des resources de test.
*
* @throws CoserBusinessException
@@ -98,14 +110,10 @@
*/
@Test
public void testUploadDirectoyMerge() throws CoserBusinessException {
- URL firstUpload = WebServiceTest.class.getResource("/web/upload1.zip");
- File firstUploadFile = new File(firstUpload.getFile());
- webService.registerNewUploadedResults(firstUploadFile);
+ registerUploadedResult("/web/upload1.zip");
// second upload with merge
- URL secondUpload = WebServiceTest.class.getResource("/web/upload2.zip");
- File secondUploadFile = new File(secondUpload.getFile());
- webService.registerNewUploadedResults(secondUploadFile);
+ registerUploadedResult("/web/upload2.zip");
// some tests (from first)
assertFileNotExists(config.getWebProjectsDirectory() + "/projet1/selections/selection11/results/result111");
@@ -126,9 +134,7 @@
*/
@Test
public void testSourceZip() throws CoserBusinessException, IOException {
- URL firstUpload = WebServiceTest.class.getResource("/web/upload1.zip");
- File firstUploadFile = new File(firstUpload.getFile());
- webService.registerNewUploadedResults(firstUploadFile);
+ registerUploadedResult("/web/upload1.zip");
File zip = webService.getSourceZip("testzone1", "en");
File tempDir = FileUtil.createTempDirectory("coser", ".tmp");
@@ -136,4 +142,28 @@
Assert.assertTrue(new File(tempDir, "coser-sources" + File.separator + "testcatch.csv").isFile());
FileUtils.deleteDirectory(tempDir);
}
+
+ /**
+ * Test la récupération d'une image parmit les resultat de type "mapReference".
+ *
+ * @throws CoserBusinessException
+ */
+ @Test
+ public void testGetMapFile() throws CoserBusinessException {
+ registerUploadedResult("/web/upload2.zip");
+ File file = webService.getMapFile("Medits", "SPECIES1");
+ Assert.assertNotNull(file);
+ }
+
+ /**
+ * Test la generation pdf avec l'inclusion d'image.
+ *
+ * @throws CoserBusinessException
+ */
+ @Test
+ public void testGetMapFileAsPDF() throws CoserBusinessException {
+ registerUploadedResult("/web/upload2.zip");
+ File file = webService.getMapFileAsPDF("Medits", "SPECIES1");
+ Assert.assertNotNull(file);
+ }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -38,7 +38,7 @@
import fr.ifremer.coser.web.ServiceFactory;
/**
- * Action index, recupere la liste des resultats.
+ * Appéle par le navigateur pour recuperer le contenu de l'image.
*
* @author chatellier
* @version $Revision$
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -0,0 +1,98 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions.map;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+
+import org.apache.struts2.convention.annotation.Action;
+import org.apache.struts2.convention.annotation.Result;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
+import fr.ifremer.coser.web.CoserWebException;
+import fr.ifremer.coser.web.ServiceFactory;
+
+/**
+ * Génére la carte sous forme de pdf.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class MapPdfAction extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 1663244944108703571L;
+
+ protected String survey;
+
+ protected String species;
+
+ public String getSurvey() {
+ return survey;
+ }
+
+ public void setSurvey(String survey) {
+ this.survey = survey;
+ }
+
+ public String getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(String species) {
+ this.species = species;
+ }
+
+ @Action(results= {@Result(type="stream", params={"contentType", "application/pdf", "inputName", "inputStream", "contentDisposition", "attachment; filename=\"${filename}\""})})
+ public String execute() {
+ return SUCCESS;
+ }
+
+ public String getFilename() {
+ return survey + "-" + species + ".pdf";
+ }
+
+ public InputStream getInputStream() {
+ WebService webService = ServiceFactory.getWebService();
+
+ InputStream input = null;
+ try {
+ File mapImage = webService.getMapFileAsPDF(survey, species);
+ input = new FileInputStream(mapImage);
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get map pdf", ex);
+ } catch (FileNotFoundException ex) {
+ throw new CoserWebException("Can't get map pdf", ex);
+ }
+
+ return input;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2011-01-18 15:20:22 UTC (rev 521)
@@ -22,8 +22,6 @@
package fr.ifremer.coser.web.actions.source;
-import java.util.Locale;
-
import com.opensymphony.xwork2.ActionSupport;
import fr.ifremer.coser.CoserBusinessException;
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-18 15:20:22 UTC (rev 521)
@@ -47,6 +47,11 @@
message.common.selectindicator=Select an indicator
message.common.noresults=No results available
message.common.selectspecies=Select a species
+message.map.citationtitle=Citation
+message.map.citation=Trenkel V.M., O. Berthel\u00E9, P. Lorance, J.A. Bertrand, A. Brind''Amour, M.L. Cochard, F. Coppin, J.P. Leaut\u00E9, J.C. Mah\u00E9, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. V\u00E9rin, 2009. Grands invert\u00E9br\u00E9s et poissons observ\u00E9s par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH : 09-003. {0}. 100 p.
+message.map.downloadaspdf=Download as PDF
+message.map.paragraph1=L''objectif de cet atlas est de donner un aper\u00E7u de la distribution spatiale des esp\u00E8ces de poissons et de certains invert\u00E9br\u00E9s marin \u00E0 partir des observations des campagnes de p\u00EAche scientifiques.
+message.map.paragraph2=Pour chaque zone un quadrillage syst\u00E9matique a \u00E9t\u00E9 d\u00E9fini, puis la densit\u00E9 moyenne par km\u00B2 dans chaque cellule a \u00E9t\u00E9 calcul\u00E9e en utilisant les observations de toute la p\u00E9riode. Pour la repr\u00E9sentation cartographique, les cellules avec des densit\u00E9s moyenne correspondant aux quartiles de densit\u00E9 ont re\u00E7u la m\u00EAme couleur\u00A0: bleu\u00A0: esp\u00E8ce jamais observ\u00E9e, jaune clair\u00A0: densit\u00E9 moyenne entre [0 et 25\u00A0%[; jaune fonc\u00E9\u00A0: [25-50\u00A0%[, orange\u00A0: [50-75\u00A0%[ et rouge\u00A0: [75-100\u00A0%]. Donc, les zones o\u00F9 se trouvent les densit\u00E9s les plus \u00E9lev\u00E9es en moyenne sont repr\u00E9sent\u00E9es en rouge.
message.source.download=Download
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-18 15:20:22 UTC (rev 521)
@@ -47,6 +47,11 @@
message.common.selectindicator=Selectionnez un indicateur
message.common.selectspecies=Selectionnez une esp\u00E8ces
message.common.noresults=Aucun r\u00E9sultat disponible
+message.map.citationtitle=Citation
+message.map.citation=Trenkel V.M., O. Berthel\u00E9, P. Lorance, J.A. Bertrand, A. Brind''Amour, M.L. Cochard, F. Coppin, J.P. Leaut\u00E9, J.C. Mah\u00E9, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. V\u00E9rin, 2009. Grands invert\u00E9br\u00E9s et poissons observ\u00E9s par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH : 09-003. {0}. 100 p.
+message.map.downloadaspdf=T\u00E9l\u00E9charger en PDF
+message.map.paragraph1=L''objectif de cet atlas est de donner un aper\u00E7u de la distribution spatiale des esp\u00E8ces de poissons et de certains invert\u00E9br\u00E9s marin \u00E0 partir des observations des campagnes de p\u00EAche scientifiques.
+message.map.paragraph2=Pour chaque zone un quadrillage syst\u00E9matique a \u00E9t\u00E9 d\u00E9fini, puis la densit\u00E9 moyenne par km\u00B2 dans chaque cellule a \u00E9t\u00E9 calcul\u00E9e en utilisant les observations de toute la p\u00E9riode. Pour la repr\u00E9sentation cartographique, les cellules avec des densit\u00E9s moyenne correspondant aux quartiles de densit\u00E9 ont re\u00E7u la m\u00EAme couleur\u00A0: bleu\u00A0: esp\u00E8ce jamais observ\u00E9e, jaune clair\u00A0: densit\u00E9 moyenne entre [0 et 25\u00A0%[; jaune fonc\u00E9\u00A0: [25-50\u00A0%[, orange\u00A0: [50-75\u00A0%[ et rouge\u00A0: [75-100\u00A0%]. Donc, les zones o\u00F9 se trouvent les densit\u00E9s les plus \u00E9lev\u00E9es en moyenne sont repr\u00E9sent\u00E9es en rouge.
message.source.download=T\u00E9l\u00E9charger
message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-18 15:20:22 UTC (rev 521)
@@ -31,10 +31,25 @@
</head>
<body>
+ <p><s:text name="message.map.paragraph1" /></p>
+ <p><s:text name="message.map.paragraph2" /></p>
+
<img src="<s:url action='map-data'>
<s:param name="survey" value="%{survey}" />
<s:param name="species" value="%{species}" />
</s:url>" />
+ <p><s:a action="map-pdf">
+ <s:param name="survey" value="%{survey}" />
+ <s:param name="species" value="%{species}" />
+ <s:text name="message.map.downloadaspdf"></s:text>
+ </s:a>.</p>
+
+ <p>
+ <span style="font-weight:bold"><s:text name="message.map.citationtitle" /></span> : <s:text name="message.map.citation">
+ <s:param><a href="http://archimer.ifremer.fr/doc/00000/6976/">http://archimer.ifremer.fr/doc/00000/6976/</a></s:param>
+ </s:text>
+ </p>
+
</body>
</html>
\ No newline at end of file
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp 2011-01-18 15:20:22 UTC (rev 521)
@@ -35,10 +35,15 @@
<br />
- <s:form action="map" method="get">
- <s:select name="species" list="species" label="%{getText('message.common.selectspecies')}" />
- <s:hidden name="survey" property="survey"/>
- <s:submit label="Suite"/>
- </s:form>
+ <s:if test="%{species.isEmpty()}">
+ <s:text name="message.common.noresults"></s:text>
+ </s:if>
+ <s:else>
+ <s:form action="map" method="get">
+ <s:select name="species" list="species" label="%{getText('message.common.selectspecies')}" />
+ <s:hidden name="survey" property="survey"/>
+ <s:submit label="Suite"/>
+ </s:form>
+ </s:else>
</body>
</html>
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-01-18 15:19:02 UTC (rev 520)
+++ trunk/pom.xml 2011-01-18 15:20:22 UTC (rev 521)
@@ -273,6 +273,13 @@
<version>R8pre2</version>
<scope>compile</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.16</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
</dependencyManagement>
1
0
r520 - trunk/coser-business/src/test/resources/web
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
by chatellier@users.labs.libre-entreprise.org 18 Jan '11
18 Jan '11
Author: chatellier
Date: 2011-01-18 15:19:02 +0000 (Tue, 18 Jan 2011)
New Revision: 520
Log:
Ajout d'une carte dans les jeux d'essai
Modified:
trunk/coser-business/src/test/resources/web/upload1.zip
trunk/coser-business/src/test/resources/web/upload2.zip
Modified: trunk/coser-business/src/test/resources/web/upload1.zip
===================================================================
(Binary files differ)
Modified: trunk/coser-business/src/test/resources/web/upload2.zip
===================================================================
(Binary files differ)
1
0
r519 - in trunk/coser-web/src/main: java/fr/ifremer/coser/web/actions java/fr/ifremer/coser/web/actions/com java/fr/ifremer/coser/web/actions/common java/fr/ifremer/coser/web/actions/map java/fr/ifremer/coser/web/actions/pop java/fr/ifremer/coser/web/actions/source resources/fr/ifremer/coser/web webapp/WEB-INF/content webapp/WEB-INF/content/com webapp/WEB-INF/content/map webapp/WEB-INF/content/pop webapp/WEB-INF/content/source webapp/WEB-INF/decorators
by chatellier@users.labs.libre-entreprise.org 17 Jan '11
by chatellier@users.labs.libre-entreprise.org 17 Jan '11
17 Jan '11
Author: chatellier
Date: 2011-01-17 17:03:28 +0000 (Mon, 17 Jan 2011)
New Revision: 519
Log:
Refactoring pour le code commun aux actions.
Ajout de la pr?\195?\169sentation des campagnes.
Added:
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java
trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/survey.jsp
Removed:
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_en.properties
trunk/coser-web/src/main/webapp/WEB-INF/content/map/zone.jsp
Modified:
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/IndicatorAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/ZoneAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/FacadeAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/IndicatorAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/ZoneAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/FacadeAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/index.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp
trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp
trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,41 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+/**
+ * Survey description action.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SurveyAction extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -7450643911834502103L;
+
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/IndicatorAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/IndicatorAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/IndicatorAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,21 +22,10 @@
package fr.ifremer.coser.web.actions.com;
-import java.util.Locale;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonIndicator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
- * Action index, recupere la liste des resultats.
+ * Action index, recupere la liste des indicateurs.
*
* @author chatellier
* @version $Revision$
@@ -44,47 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class IndicatorAction extends ActionSupport {
+public class IndicatorAction extends CommonIndicator {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
- private static final Log log = LogFactory.getLog(IndicatorAction.class);
-
- protected String zone;
-
- protected Map<String, String> indicators;
-
- public String getZone() {
- return zone;
- }
-
- public void setZone(String zone) {
- this.zone = zone;
- }
-
- public Map<String, String> getIndicators() {
- return indicators;
- }
-
- @Override
- public String execute() {
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Looking for com indicator for zone %s", zone));
- }
-
- WebService webService = ServiceFactory.getWebService();
-
- Locale locale = getLocale();
- String localeCode = locale.getLanguage();
-
- try {
- indicators = webService.getIndicators(zone, null, localeCode);
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get indicators", ex);
- }
-
- return SUCCESS;
- }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/ZoneAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/ZoneAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/ZoneAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,15 +22,8 @@
package fr.ifremer.coser.web.actions.com;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonZone;
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Affiche la liste des sous zones (zone).
*
@@ -40,37 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class ZoneAction extends ActionSupport {
+public class ZoneAction extends CommonZone {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
- protected String facade;
-
- public void setFacade(String facade) {
- this.facade = facade;
- }
-
- protected Map<String, String> zones;
-
- public Map<String, String> getZones() {
- return zones;
- }
-
- @Override
- public String execute() {
-
- WebService webService = ServiceFactory.getWebService();
- try {
-
- // renvoi la liste des id subzone-survey et leurs label
- // associé
- zones = webService.getZoneForFacade(facade);
-
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get zone map", ex);
- }
-
- return SUCCESS;
- }
}
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,68 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions.common;
+
+import java.util.Map;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
+import fr.ifremer.coser.web.CoserWebException;
+import fr.ifremer.coser.web.ServiceFactory;
+
+/**
+ * Facade list action.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class CommonFacade extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 3385467755357775199L;
+
+ protected Map<String, String> facades;
+
+ public Map<String, String> getFacades() {
+ return facades;
+ }
+
+ @Override
+ public String execute() {
+
+ WebService webService = ServiceFactory.getWebService();
+ try {
+ // renvoi la liste des facadeid et leur label associé
+ facades = webService.getFacades();
+
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get facades", ex);
+ }
+
+ return SUCCESS;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,109 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions.common;
+
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
+import fr.ifremer.coser.web.CoserWebException;
+import fr.ifremer.coser.web.ServiceFactory;
+
+/**
+ * Recupere la liste des indicateurs à partir d'une zone et d'une espece (peut
+ * être null dans le cas des communautés).
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class CommonIndicator extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 1663244944108703571L;
+
+ private static final Log log = LogFactory.getLog(CommonIndicator.class);
+
+ protected String zone;
+
+ protected String species;
+
+ protected String zonePicture;
+
+ protected Map<String, String> indicators;
+
+ public String getZone() {
+ return zone;
+ }
+
+ public void setZone(String zone) {
+ this.zone = zone;
+ }
+
+ public String getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(String species) {
+ this.species = species;
+ }
+
+ public Map<String, String> getIndicators() {
+ return indicators;
+ }
+
+ public String getZonePicture() {
+ return zonePicture;
+ }
+
+ @Override
+ public String execute() {
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Looking for indicator for zone %s and species %s", zone, species));
+ }
+
+ WebService webService = ServiceFactory.getWebService();
+
+ Locale locale = getLocale();
+ String localeCode = locale.getLanguage();
+
+ try {
+ indicators = webService.getIndicators(zone, species, localeCode);
+
+ zonePicture = webService.getZonePictures().get(zone);
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get indicators", ex);
+ }
+
+ return SUCCESS;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,89 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions.common;
+
+import java.util.Map;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
+import fr.ifremer.coser.web.CoserWebException;
+import fr.ifremer.coser.web.ServiceFactory;
+
+/**
+ * Affiche la liste des sous zones (zone) et leurs liste des cartes
+ * et commentaires associés.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class CommonZone extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 3385467755357775199L;
+
+ protected String facade;
+
+ protected Map<String, String> zones;
+
+ protected Map<String, String> zonesPictures;
+
+ protected Map<String, String> zonesMetaInfo;
+
+ public void setFacade(String facade) {
+ this.facade = facade;
+ }
+
+ public Map<String, String> getZones() {
+ return zones;
+ }
+
+ public Map<String, String> getZonesPictures() {
+ return zonesPictures;
+ }
+
+ public Map<String, String> getZonesMetaInfo() {
+ return zonesMetaInfo;
+ }
+
+ @Override
+ public String execute() {
+
+ WebService webService = ServiceFactory.getWebService();
+
+ try {
+ // renvoi la liste des id subzone-survey et leurs label associé
+ zones = webService.getZoneForFacade(facade);
+ zonesPictures = webService.getZonePictures();
+ zonesMetaInfo = webService.getZoneMetaInfo();
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get zone map", ex);
+ }
+
+ return SUCCESS;
+ }
+}
Property changes on: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/FacadeAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/FacadeAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/FacadeAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,15 +22,8 @@
package fr.ifremer.coser.web.actions.map;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonFacade;
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Action index, affiche la liste des facades majeures.
*
@@ -40,29 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class FacadeAction extends ActionSupport {
+public class FacadeAction extends CommonFacade {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
- protected Map<String, String> facades;
-
- public Map<String, String> getFacades() {
- return facades;
- }
-
- @Override
- public String execute() {
-
- WebService webService = ServiceFactory.getWebService();
- try {
- // renvoi la liste des facadeid et leur label associé
- facades = webService.getFacades();
-
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get zone map", ex);
- }
-
- return SUCCESS;
- }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -38,16 +38,16 @@
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
- protected String zone;
+ protected String survey;
protected String species;
- public String getZone() {
- return zone;
+ public String getSurvey() {
+ return survey;
}
- public void setZone(String zone) {
- this.zone = zone;
+ public void setSurvey(String survey) {
+ this.survey = survey;
}
public String getSpecies() {
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -51,16 +51,16 @@
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
- protected String zone;
+ protected String survey;
protected String species;
- public String getZone() {
- return zone;
+ public String getSurvey() {
+ return survey;
}
- public void setZone(String zone) {
- this.zone = zone;
+ public void setSurvey(String survey) {
+ this.survey = survey;
}
public String getSpecies() {
@@ -81,7 +81,7 @@
InputStream input = null;
try {
- File mapImage = webService.getMapFile(zone, species);
+ File mapImage = webService.getMapFile(survey, species);
input = new FileInputStream(mapImage);
} catch (CoserBusinessException ex) {
throw new CoserWebException("Can't get map file", ex);
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -35,7 +35,7 @@
import fr.ifremer.coser.web.ServiceFactory;
/**
- * Action index, recupere la liste des resultats.
+ * Recupere la liste des especes correspondant a une campagne.
*
* @author chatellier
* @version $Revision$
@@ -50,16 +50,16 @@
private static final Log log = LogFactory.getLog(SpeciesAction.class);
- protected String zone;
+ protected String survey;
protected Map<String, String> species;
- public String getZone() {
- return zone;
+ public String getSurvey() {
+ return survey;
}
- public void setZone(String zone) {
- this.zone = zone;
+ public void setSurvey(String survey) {
+ this.survey = survey;
}
public Map<String, String> getSpecies() {
@@ -70,13 +70,13 @@
public String execute() {
if (log.isInfoEnabled()) {
- log.info("Looking for species for zone " + zone);
+ log.info("Looking for species for survey " + survey);
}
WebService webService = ServiceFactory.getWebService();
try {
- species = webService.getSpecies(zone);
+ species = webService.getSpeciesForSurvey(survey);
if (log.isDebugEnabled()) {
log.debug("Species are : " + species);
Copied: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java (from rev 500, trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java)
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java (rev 0)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,76 @@
+/*
+ * #%L
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.coser.web.actions.map;
+
+import java.util.Map;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
+import fr.ifremer.coser.web.CoserWebException;
+import fr.ifremer.coser.web.ServiceFactory;
+
+/**
+ * Affiche la liste des sous zones (zone).
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SurveyAction extends ActionSupport {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 3385467755357775199L;
+
+ protected String facade;
+
+ public void setFacade(String facade) {
+ this.facade = facade;
+ }
+
+ protected Map<String, String> surveys;
+
+ public Map<String, String> getSurveys() {
+ return surveys;
+ }
+
+ @Override
+ public String execute() {
+
+ WebService webService = ServiceFactory.getWebService();
+ try {
+
+ // renvoie la liste des id subzone-survey et leurs label
+ // associé
+ surveys = webService.getSurveyForFacade(facade);
+
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get zone map", ex);
+ }
+
+ return SUCCESS;
+ }
+}
Deleted: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -1,76 +0,0 @@
-/*
- * #%L
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.coser.web.actions.map;
-
-import java.util.Map;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
-/**
- * Affiche la liste des sous zones (zone).
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class ZoneAction extends ActionSupport {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = 3385467755357775199L;
-
- protected String facade;
-
- public void setFacade(String facade) {
- this.facade = facade;
- }
-
- protected Map<String, String> zones;
-
- public Map<String, String> getZones() {
- return zones;
- }
-
- @Override
- public String execute() {
-
- WebService webService = ServiceFactory.getWebService();
- try {
-
- // renvoi la liste des id subzone-survey et leurs label
- // associé
- zones = webService.getZoneForFacade(facade);
-
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get zone map", ex);
- }
-
- return SUCCESS;
- }
-}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/IndicatorAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/IndicatorAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/IndicatorAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,19 +22,8 @@
package fr.ifremer.coser.web.actions.pop;
-import java.util.Locale;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonIndicator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Action index, recupere la liste des resultats.
*
@@ -44,57 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class IndicatorAction extends ActionSupport {
+public class IndicatorAction extends CommonIndicator {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
- private static final Log log = LogFactory.getLog(IndicatorAction.class);
-
- protected String zone;
-
- protected String species;
-
- protected Map<String, String> indicators;
-
- public String getZone() {
- return zone;
- }
-
- public void setZone(String zone) {
- this.zone = zone;
- }
-
- public String getSpecies() {
- return species;
- }
-
- public void setSpecies(String species) {
- this.species = species;
- }
-
- public Map<String, String> getIndicators() {
- return indicators;
- }
-
- @Override
- public String execute() {
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Looking for indicator for zone %s and species %s", zone, species));
- }
-
- WebService webService = ServiceFactory.getWebService();
-
- Locale locale = getLocale();
- String localeCode = locale.getLanguage();
-
- try {
- indicators = webService.getIndicators(zone, species, localeCode);
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get indicators", ex);
- }
-
- return SUCCESS;
- }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -54,6 +54,8 @@
protected Map<String, String> species;
+ protected String zonePicture;
+
public String getZone() {
return zone;
}
@@ -66,6 +68,10 @@
return species;
}
+ public String getZonePicture() {
+ return zonePicture;
+ }
+
@Override
public String execute() {
@@ -77,7 +83,9 @@
try {
species = webService.getSpecies(zone);
-
+
+ zonePicture = webService.getZonePictures().get(zone);
+
if (log.isDebugEnabled()) {
log.debug("Species are : " + species);
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/ZoneAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/ZoneAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/ZoneAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,15 +22,8 @@
package fr.ifremer.coser.web.actions.pop;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonZone;
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Affiche la liste des sous zones (zone).
*
@@ -40,49 +33,8 @@
* Last update : $Date$
* By : $Author$
*/
-public class ZoneAction extends ActionSupport {
+public class ZoneAction extends CommonZone {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
-
- protected String facade;
-
- protected Map<String, String> zones;
-
- protected Map<String, String> zonesPictures;
-
- protected Map<String, String> zonesMetaInfo;
-
- public void setFacade(String facade) {
- this.facade = facade;
- }
-
- public Map<String, String> getZones() {
- return zones;
- }
-
- public Map<String, String> getZonesPictures() {
- return zonesPictures;
- }
-
- public Map<String, String> getZonesMetaInfo() {
- return zonesMetaInfo;
- }
-
- @Override
- public String execute() {
-
- WebService webService = ServiceFactory.getWebService();
-
- try {
- // renvoi la liste des id subzone-survey et leurs label associé
- zones = webService.getZoneForFacade(facade);
- zonesPictures = webService.getZonePictures();
- zonesMetaInfo = webService.getZoneMetaInfo();
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get zone map", ex);
- }
-
- return SUCCESS;
- }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/FacadeAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/FacadeAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/FacadeAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,15 +22,8 @@
package fr.ifremer.coser.web.actions.source;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonFacade;
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Action index, affiche la liste des facades majeures.
*
@@ -40,29 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class FacadeAction extends ActionSupport {
+public class FacadeAction extends CommonFacade {
/** serialVersionUID. */
- private static final long serialVersionUID = 3385467755357775199L;
+ private static final long serialVersionUID = 4252429273272803414L;
- protected Map<String, String> facades;
-
- public Map<String, String> getFacades() {
- return facades;
- }
-
- @Override
- public String execute() {
-
- WebService webService = ServiceFactory.getWebService();
- try {
- // renvoi la liste des facadeid et leur label associé
- facades = webService.getFacades();
-
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get zone map", ex);
- }
-
- return SUCCESS;
- }
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,8 +22,15 @@
package fr.ifremer.coser.web.actions.source;
+import java.util.Locale;
+
import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.services.WebService;
+import fr.ifremer.coser.web.CoserWebException;
+import fr.ifremer.coser.web.ServiceFactory;
+
/**
* Affiche les liens de téléchargement du zip pour le projet choisit.
*
@@ -40,6 +47,8 @@
protected String zone;
+ protected String zonePicture;
+
public String getZone() {
return zone;
}
@@ -48,9 +57,21 @@
this.zone = zone;
}
+ public String getZonePicture() {
+ return zonePicture;
+ }
+
@Override
public String execute() {
+ WebService webService = ServiceFactory.getWebService();
+
+ try {
+ zonePicture = webService.getZonePictures().get(zone);
+ } catch (CoserBusinessException ex) {
+ throw new CoserWebException("Can't get zone picture", ex);
+ }
+
return SUCCESS;
}
}
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2011-01-17 17:03:28 UTC (rev 519)
@@ -22,15 +22,8 @@
package fr.ifremer.coser.web.actions.source;
-import java.util.Map;
+import fr.ifremer.coser.web.actions.common.CommonZone;
-import com.opensymphony.xwork2.ActionSupport;
-
-import fr.ifremer.coser.CoserBusinessException;
-import fr.ifremer.coser.services.WebService;
-import fr.ifremer.coser.web.CoserWebException;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Affiche la liste des sous zones (zone).
*
@@ -40,37 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class ZoneAction extends ActionSupport {
+public class ZoneAction extends CommonZone {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
- protected String facade;
-
- public void setFacade(String facade) {
- this.facade = facade;
- }
-
- protected Map<String, String> zones;
-
- public Map<String, String> getZones() {
- return zones;
- }
-
- @Override
- public String execute() {
-
- WebService webService = ServiceFactory.getWebService();
- try {
-
- // renvoi la liste des id subzone-survey et leurs label
- // associé
- zones = webService.getZoneForFacade(facade);
-
- } catch (CoserBusinessException ex) {
- throw new CoserWebException("Can't get zone map", ex);
- }
-
- return SUCCESS;
- }
}
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package.properties 2011-01-17 17:03:28 UTC (rev 519)
@@ -31,23 +31,87 @@
message.index.paragraph3=Chaque s\u00E9rie de campagnes est conduite selon une strat\u00E9gie d''\u00E9chantillonnage sp\u00E9cifique. Sauf cas particuliers, les analyses et interpr\u00E9tations doivent \u00EAtre conduites par s\u00E9rie, en prenant en compte les strat\u00E9gies d''\u00E9chantillonnage propres \u00E0 chacune de ces s\u00E9ries. Sur le site, les donn\u00E9es sont pr\u00E9sent\u00E9es par s\u00E9rie.
message.index.paragraph4=Dans les tables de donn\u00E9es, toutes les esp\u00E8ces sont identifi\u00E9es selon le r\u00E9f\u00E9rentiel taxinomique du Syst\u00E8me d''informations halieutiques de l''Ifremer ({0}).
message.index.datatypetitle=Quatre types de donn\u00E9es sont pr\u00E9sent\u00E9es
-message.index.datatype1=Des donn\u00E9es par op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral par trait de chalut)
-message.index.datatype2=Des cartes de distribution par esp\u00E8ce et par zone
-message.index.datatype3=Des indices biologiques par esp\u00E8ce et par zone
-message.index.datatype4=Des indices de communaut\u00E9 par zone.
+message.index.datatypesource=Des donn\u00E9es par op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral par trait de chalut)
+message.index.datatypemap=Des cartes de distribution par esp\u00E8ce et par zone
+message.index.datatypepop=Des indices biologiques par esp\u00E8ce et par zone
+message.index.datatypecom=Des indices de communaut\u00E9 par zone.
message.index.quotetitle=Pour citer ce site
message.index.quotemessage=Ifremer {0,date,yyyy}. Indices de populations et de communautés issus des campagnes de surveillance halieutique de l''Ifremer. {1} ({0,date,dd MMMM})
message.index.qualitytitle=Avertissement qualit\u00E9
message.index.qualitymessage=Avertissement qualit\u00E9
-message.quality.title=Avertissement qualit\u00E9
+message.index.surveytitle=Description des campagnes
+message.index.surveyparagraph=Des manuels des protocoles d\u00E9crivent les modalit\u00E9s techniques de r\u00E9alisation de chaque s\u00E9rie de campagnes.
+message.common.selectpop=Select a population
+message.common.selectzone=Select a zone
+message.common.selectfacade=Select a facade
+message.common.selectindicator=Select an indicator
+message.common.noresults=No results available
+message.common.selectspecies=Select a species
+message.source.download=Download
+message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
+message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
+message.survey.paragraph2=Depuis une vingtaine d''ann\u00E9es, l''Ifremer organise des campagnes de p\u00EAche scientifique en mer du Nord, en Manche, en Atlantique et en M\u00E9diterran\u00E9e concernant les ressources d\u00E9mersales et benthiques. L''objectif prioritaire est de produire des indices d''abondance des principales esp\u00E8ces commerciales. Elles recueillent \u00E9galement des donn\u00E9es sur les esp\u00E8ces captur\u00E9es non commerciales. Elles contribuent ainsi aux connaissances n\u00E9cessaires au d\u00E9veloppement de l''approche \u00E9cosyst\u00E9mique des p\u00EAches, notamment dans le cadre de la politique commune des p\u00EAches et plus largement de la strat\u00E9gie marine de l''Union europ\u00E9enne.
+message.survey.dataengintitle=Diff\u00E9rents engins d''\u00E9chantillonnage sont utilis\u00E9s :
+message.survey.dataenginfond=Un chalut de fond \u00E0 grande ouverture verticale pour l''observation des ressources d\u00E9mersales, sur les plateaux continentaux et le haut des pentes continentales (accores) en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne, golfe du Lion et Est de la Corse,
+message.survey.dataenginperche=Un chalut \u00E0 perche pour les zones tr\u00E8s c\u00F4ti\u00E8res et les estuaires lors des campagnes visant les juv\u00E9niles de poissons plats : baies de Somme et de Vilaine,
+message.survey.dataengincasier=Un \u00E9chantillonnage au casier pour les campagnes d''\u00E9valuation des grands crustac\u00E9s, en particulier le homard, aux abords du cap de Flamanville.
+message.survey.paragraph3=Les campagnes sont r\u00E9alis\u00E9es selon des plans d''\u00E9chantillonnage standardis\u00E9s. L\u2019engin de p\u00EAche et son gr\u00E9ement, la position des stations, le tri des captures, les pr\u00E9l\u00E8vements biologiques suivent des protocoles fix\u00E9s.
+message.survey.paragraph4=Pour les campagnes coordonn\u00E9es entre navires de recherche des pays riverains en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne et M\u00E9diterran\u00E9e, les protocoles sont communs \u00E0 l''ensemble des pays partenaires. Les traits de chalut des diff\u00E9rents navires de recherche sont comparables.
+message.survey.paragraph5=Chaque zone \u00E9tudi\u00E9e est d\u00E9coup\u00E9e en strates en fonction de la profondeur, de la latitude ou d''autres crit\u00E8res. L''\u00E9chantillonnage pr\u00E9voit un nombre de traits de chalut ou de mouillages de casiers par strate.
+message.survey.paragraph6=Dans une campagne de chalutage scientifique, les positions des traits de chalut sont choisies selon un plan d''\u00E9chantillonnage statistique. L''objectif n''est pas d''obtenir les meilleures captures possibles comme le recherchent les p\u00EAcheurs, mais de r\u00E9colter des donn\u00E9es comparables d''une ann\u00E9e sur l''autre afin de relever des \u00E9volutions.
+message.survey.detailstitle=Caract\u00E9ristiques des campagnes de surveillance halieutique de l''Ifremer
+message.survey.merdunord=Fa\u00E7ade Mer du Nord
+message.survey.merdunord.sudmerdunord=Sud mer du Nord
+message.survey.merdunord.sudmerdunord.desc=Contribution fran\u00E7aise d''un mois \u00E0 la campagne internationale IBTS (International Bottom Trawl Survey) au premier trimestre, tous les ans depuis 1980, au chalut de fond \u00E0 grande ouverture verticale. En moyenne, le navire fran\u00E7ais fait 58 chalutages par an. Le sud de la mer du Nord est couvert par 4 navires (fran\u00E7ais, belge, danois et allemand) qui r\u00E9alisent en tout environ 200 traits par an. Chaque trait dure une demi-heure et couvre une surface d\'environ 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 678\u00A0000\u00A0km\u00B2 de la zone.
+message.survey.merdunord.sudmerdunord.plus=Pour en savoir plus sur les campagnes IBTS
+message.survey.merdunord.sudmerdunord.ibts6=Manuel des protocoles IBTS - R\u00E9vision VI (1999)
+message.survey.merdunord.sudmerdunord.ibts7=Manuel des protocoles IBTS - R\u00E9vision VII (2004)
+message.survey.mancheorientale=Fa\u00E7ade Manche orientale
+message.survey.mancheorientale.mancheorientale=Manche orientale
+message.survey.mancheorientale.mancheorientale.desc=Campagne fran\u00E7aise CGFS (Channel Ground Fish Survey) d''un mois en octobre, coordonn\u00E9e au plan international avec les campagnes IBTS. La campagne a lieu tous les ans depuis 1988. En moyenne 90 traits d''une demi-heure, au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d''environ 0,03 km\u00B2. Cette campagne est repr\u00E9sentative des 70 748 km\u00B2 de la Manche orientale.
+message.survey.mancheorientale.mancheorientale.plus=Pour en savoir plus sur les campagnes CGFS
+message.survey.mancheorientale.mancheorientale.cgfs1=Manuel des protocoles CGFS - Version 1.0 (2002)
+message.survey.mancheorientale.baiedesomme=Baie de Somme
+message.survey.mancheorientale.baiedesomme.desc=Campagne de p\u00EAche sur la nourricerie de la baie de Somme (NourSomme) d''une semaine en septembre-octobre, tous les ans depuis 1995, aux chaluts \u00E0 perche de 2 m\u00E8tres de large dans la partie la plus estuarienne de la baie et 3 m\u00E8tres dans la partie externe, plus marine. En moyenne 50 chalutages sont r\u00E9alis\u00E9s chaque ann\u00E9e. Ils durent en moyenne 7 minutes sur une surface de 0,001 km\u00B2 chacun dans la partie interne de la baie et 15 minutes sur une surface d''environ 0,004 km\u00B2 dans la partie externe. Cette campagne est repr\u00E9sentative des 720 km\u00B2 de la baie.
+message.survey.mancheorientale.baiedesomme.plus=Pour en savoir plus sur les campagnes NourSomme
+message.survey.mancheorientale.baiedesomme.noursomme1=Manuel des protocoles Nourriceries Somme - V 1.0 (2002)
+message.survey.mancheoccidentale=Fa\u00E7ade Manche occidentale
+message.survey.mancheoccidentale.flamanville=Abords du cap de Flamanville
+message.survey.mancheoccidentale.flamanville.desc=Deux campagnes de 15 jours aux casiers \u00E0 crustac\u00E9s aux abords du cap de Flamanville (CrustaFlam), en juin et septembre, depuis 1986 : 1200 casiers relev\u00E9s par campagne sur une zone de 26 km\u00B2.
+message.survey.mancheoccidentale.flamanville.plus=Pour en savoir plus sur les campagnes CrustFlam
+message.survey.mancheoccidentale.flamanville.crustaflam1=Manuel des protocoles CRUSTAFLAM - Version 1.0 (2003)
+message.survey.atlantique=Fa\u00E7ade Atlantique
+message.survey.atlantique.celtique=Mer Celtique
+message.survey.atlantique.celtique.desc=Campagne Evhoe (Evaluation des ressources halieutiques de l''ouest europ\u00E9en) d''un mois au quatri\u00E8me trimestre, tous les ans depuis 1997. En moyenne 75 traits d''une demi-heure, au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d''environ 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 150 000 km\u00B2 de la mer Celtique.
+message.survey.atlantique.celtique.plus=Pour en savoir plus sur les campagnes Evhoe
+message.survey.atlantique.celtique.evhoe1=Manuel des protocoles EVHOE - Version 1.0 (2005)
+message.survey.atlantique.gascogne=Golfe de Gascogne
+message.survey.atlantique.gascogne.desc=Campagne Evhoe (Evaluation des ressources halieutiques de l''ouest europ\u00E9en) d''un mois au quatri\u00E8me trimestre, tous les ans depuis 1992 (sauf en 1993 et 1996). En moyenne, 70 traits de chalut d''une demi-heure au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface de 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 72 500 km\u00B2 du golfe de Gascogne. La campagne Evhoe couvre donc le golfe de Gascogne et la mer Celtique avec le m\u00EAme protocole. De plus elle est coordonn\u00E9e internationalement, dans le cadre des campagnes IBTS, avec une campagne espagnole en mer Cantabrique, une campagne irlandaise et une campagne anglaise en mer Celtique.
+message.survey.atlantique.gascogne.plus=Pour en savoir plus sur les campagnes Evhoe
+message.survey.atlantique.gascogne.evhoe1=Manuel des protocoles EVHOE - Version 1.0 (2005)
+message.survey.atlantique.vilaine=Baie de Vilaine
+message.survey.atlantique.vilaine.desc=Campagne sur la nourricerie de la baie de Vilaine (NourVil), d''une semaine \u00E0 l''automne, tous les ans de 1980 \u00E0 2010, sauf en 1991, 1994, 1995, 1998, 1999, 2006 et 2007, au chalut \u00E0 perche de 3 m\u00E8tres de large. En moyenne, 30 chalutages de 15 minutes sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d\'environ 0,0041 km\u00B2. Cette campagne est repr\u00E9sentative des 330 km\u00B2 de la baie.
+message.survey.atlantique.vilaine.plus=Pour en savoir plus sur les campagnes Nourvil
+message.survey.atlantique.vilaine.nourvil1=Manuel des protocoles Nourriceries Gascogne - V 1.0 (2002)
+message.survey.mediterranee=Fa\u00E7ade M\u00E9diterran\u00E9e
+message.survey.mediterranee.golfelion=Golfe du Lion
+message.survey.mediterranee.golfelion.desc=Contribution fran\u00E7aise aux campagnes internationales Medits (International bottom Trawl Surveys in the Mediterranean), d''un mois au deuxi\u00E8me trimestre tous les ans depuis 1994 au chalut de fond \u00E0 grande ouverture verticale \u00E0 ailes courtes. En moyenne 69 chalutages sont r\u00E9alis\u00E9s, d''une demi-heure couvrant une surface d''environ 0,05 km\u00B2 chacun pour les profondeurs inf\u00E9rieures \u00E0 200 m\u00E8tres et d''une heure (surface d''environ 0,1\u00A0km\u00B2) pour les profondeurs sup\u00E9rieures \u00E0 200 m\u00E8tres. Medits est repr\u00E9sentative des 13 860 km\u00B2 du golfe de Lion.
+message.survey.mediterranee.golfelion.plus=Pour en savoir plus sur les campagnes Medits
+message.survey.mediterranee.golfelion.medits1=Manuel des protocoles Medits, Version 1 (1994)
+message.survey.mediterranee.golfelion.medits2=Manuel des protocoles Medits, Version 2 (1995)
+message.survey.mediterranee.golfelion.medits3=Manuel des protocoles Medits, Version 3 (1999)
+message.survey.mediterranee.golfelion.medits4=Manuel des protocoles Medits, Version 4 (2001)
+message.survey.mediterranee.golfelion.medits5=Manuel des protocoles Medits, Version 5 (2007)
+message.survey.mediterranee.estcorse=Est de la Corse
+message.survey.mediterranee.estcorse.desc=Contribution fran\u00E7aise \u00E0 la campagne internationale Medits (International bottom Trawl Surveys in the Mediterranean), d''une semaine au printemps, tous les ans depuis 1994, sauf en 2002, au chalut de fond \u00E0 grande ouverture verticale \u00E0 ailes courtes. En moyenne 20 chalutages sont r\u00E9alis\u00E9s, d''une demi-heure couvrant une surface d''environ 0,05 km\u00B2 chacun pour les profondeurs inf\u00E9rieures \u00E0 200 m\u00E8tres et d\'une heure (surface d\'environ 0,1\u00A0km\u00B2) pour les profondeurs sup\u00E9rieures \u00E0 200 m\u00E8tres. La campagne est repr\u00E9sentative des 4 562 km\u00B2 du plateau insulaire de l\'est de la Corse.
+message.survey.mediterranee.estcorse.plus=Pour en savoir plus sur les campagnes Medits
+message.survey.mediterranee.estcorse.medits1=Manuel des protocoles Medits, Version 1 (1994)
+message.survey.mediterranee.estcorse.medits2=Manuel des protocoles Medits, Version 2 (1995)
+message.survey.mediterranee.estcorse.medits3=Manuel des protocoles Medits, Version 3 (1999)
+message.survey.mediterranee.estcorse.medits4=Manuel des protocoles Medits, Version 4 (2001)
+message.survey.mediterranee.estcorse.medits5=Manuel des protocoles Medits, Version 5 (2007)
message.quality.paragraph1=Bien que les donn\u00E9es aient \u00E9t\u00E9 pr\u00E9cautionneusement contr\u00F4l\u00E9es par l''Ifremer, des d\u00E9fauts inh\u00E9rents \u00E0 l''agr\u00E9gation des informations peuvent persister. Par exemple\u00A0:
message.quality.paragraph2=En d\u00E9pit du fait que toutes les donn\u00E9es de toutes les s\u00E9ries de campagnes soient pr\u00E9sent\u00E9es selon le m\u00EAme format, sauf cas particuliers des diff\u00E9rences dans les strat\u00E9gies d''observation emp\u00EAchent la combinaison de donn\u00E9es de diff\u00E9rentes campagnes dans une m\u00EAme analyse. Par exemple, la capturabilit\u00E9 d\'une m\u00EAme esp\u00E8ce varie selon le type d''engin d''\u00E9chantillonnage utilis\u00E9. Il en r\u00E9sulte que chaque engin capture un sous-ensemble particulier des bioc\u00E9noses \u00E9chantillonn\u00E9es.
message.quality.paragraph3=Une propri\u00E9t\u00E9 commune aux s\u00E9ries d''observations \u00E0 la mer est l''\u00E9volution dans le temps de la comp\u00E9tence des \u00E9quipes embarqu\u00E9es pour la d\u00E9termination des esp\u00E8ces. Il peut en r\u00E9sulter des apparitions, des disparitions ou des assignations sous un m\u00EAme nom de taxons proches dans les jeux de donn\u00E9es, non repr\u00E9sentatifs de l''\u00E9volution des populations concern\u00E9es dans l''\u00E9cosyst\u00E8me.
message.quality.paragraph4=Pour les campagnes d\'une m\u00EAme s\u00E9rie, des changements dans les proc\u00E9dures d''\u00E9chantillonnage, dans les caract\u00E9ristiques des engins, dans la p\u00E9riode de r\u00E9alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr\u00E9venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn\u00E9es doivent \u00EAtre pr\u00E9alablement filtr\u00E9s ad\u00E9quatement.
message.quality.paragraph5=Il est vivement recommand\u00E9 aux utilisateurs de donn\u00E9es de les traiter avec pr\u00E9caution. Si des utilisateurs s''interrogent sur la validit\u00E9 de donn\u00E9es, ils sont invit\u00E9s \u00E0 contacter l''administrateur de la base de donn\u00E9es ({0}).
-message.common.selectpop=Select a population
-message.common.selectzone=Select a zone
-message.common.selectfacade=Select a facade
-message.common.selectindicator=Select an indicator
-message.source.download=Download
-message.common.noresults=No results available
\ No newline at end of file
Deleted: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_en.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_en.properties 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_en.properties 2011-01-17 17:03:28 UTC (rev 519)
@@ -1,52 +0,0 @@
-###
-# #%L
-# Coser :: Web
-#
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# #L%
-###
-message.layout.title=Populations and communities indices, resulting from Ifremer monitoring halieutics survey
-message.layout.oceanicdatatitle=Gestion des donn\u00E9es des campagnes oc\u00E9anographiques
-message.layout.oceanicdata1=le Syst\u00E8me d'informations scientifiques pour la mer de l'Ifremer (SISMER)
-message.layout.oceanicdata2=le Syst\u00E8me d'information halieutique de l'Ifremer (SIH)
-message.index.title=Home
-message.index.paragraph1=Ce site a \u00E9t\u00E9 con\u00E7u pour fournir en libre acc\u00E8s des donn\u00E9es brutes et des donn\u00E9es \u00E9labor\u00E9es relatives aux campagnes scientifiques d''observation halieutique conduites par l''Ifremer le long des c\u00F4tes fran\u00E7aises.
-message.index.paragraph2=Toutes les donn\u00E9es mises \u00E0 disposition ont fait l''objet de qualification selon des protocoles sp\u00E9cifiques. La qualit\u00E9 des interpr\u00E9tations \u00E9tant directement li\u00E9e \u00E0 la nature des donn\u00E9es source, les utilisateurs de donn\u00E9es sont invit\u00E9s \u00E0 consid\u00E9rer avec attention les descriptions des protocoles mis en \u0153uvre ainsi que les niveaux de qualit\u00E9 contr\u00F4l\u00E9s.
-message.index.paragraph3=Chaque s\u00E9rie de campagnes est conduite selon une strat\u00E9gie d''\u00E9chantillonnage sp\u00E9cifique. Sauf cas particuliers, les analyses et interpr\u00E9tations doivent \u00EAtre conduites par s\u00E9rie, en prenant en compte les strat\u00E9gies d''\u00E9chantillonnage propres \u00E0 chacune de ces s\u00E9ries. Sur le site, les donn\u00E9es sont pr\u00E9sent\u00E9es par s\u00E9rie.
-message.index.paragraph4=Dans les tables de donn\u00E9es, toutes les esp\u00E8ces sont identifi\u00E9es selon le r\u00E9f\u00E9rentiel taxinomique du Syst\u00E8me d''informations halieutiques de l''Ifremer ({0}).
-message.index.datatypetitle=Quatre types de donn\u00E9es sont pr\u00E9sent\u00E9es
-message.index.datatype1=Des donn\u00E9es par op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral par trait de chalut)
-message.index.datatype2=Des cartes de distribution par esp\u00E8ce et par zone
-message.index.datatype3=Des indices biologiques par esp\u00E8ce et par zone
-message.index.datatype4=Des indices de communaut\u00E9 par zone.
-message.index.quotetitle=Pour citer ce site
-message.index.quotemessage=Ifremer {0,date,yyyy}. Indices de populations et de communautés issus des campagnes de surveillance halieutique de l''Ifremer. {1} ({0,date,dd MMMM})
-message.index.qualitytitle=Avertissement qualit\u00E9
-message.index.qualitymessage=Avertissement qualit\u00E9
-message.common.selectpop=Select a population
-message.common.selectzone=Select a zone
-message.common.selectfacade=Select a facade
-message.common.selectindicator=Select an indicator
-message.common.noresults=No results available
-message.source.download=Download
-message.quality.paragraph1=Bien que les donn\u00E9es aient \u00E9t\u00E9 pr\u00E9cautionneusement contr\u00F4l\u00E9es par l''Ifremer, des d\u00E9fauts inh\u00E9rents \u00E0 l''agr\u00E9gation des informations peuvent persister. Par exemple\u00A0:
-message.quality.paragraph2=En d\u00E9pit du fait que toutes les donn\u00E9es de toutes les s\u00E9ries de campagnes soient pr\u00E9sent\u00E9es selon le m\u00EAme format, sauf cas particuliers des diff\u00E9rences dans les strat\u00E9gies d''observation emp\u00EAchent la combinaison de donn\u00E9es de diff\u00E9rentes campagnes dans une m\u00EAme analyse. Par exemple, la capturabilit\u00E9 d\'une m\u00EAme esp\u00E8ce varie selon le type d''engin d''\u00E9chantillonnage utilis\u00E9. Il en r\u00E9sulte que chaque engin capture un sous-ensemble particulier des bioc\u00E9noses \u00E9chantillonn\u00E9es.
-message.quality.paragraph3=Une propri\u00E9t\u00E9 commune aux s\u00E9ries d''observations \u00E0 la mer est l''\u00E9volution dans le temps de la comp\u00E9tence des \u00E9quipes embarqu\u00E9es pour la d\u00E9termination des esp\u00E8ces. Il peut en r\u00E9sulter des apparitions, des disparitions ou des assignations sous un m\u00EAme nom de taxons proches dans les jeux de donn\u00E9es, non repr\u00E9sentatifs de l''\u00E9volution des populations concern\u00E9es dans l''\u00E9cosyst\u00E8me.
-message.quality.paragraph4=Pour les campagnes d\'une m\u00EAme s\u00E9rie, des changements dans les proc\u00E9dures d''\u00E9chantillonnage, dans les caract\u00E9ristiques des engins, dans la p\u00E9riode de r\u00E9alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr\u00E9venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn\u00E9es doivent \u00EAtre pr\u00E9alablement filtr\u00E9s ad\u00E9quatement.
-message.quality.paragraph5=Il est vivement recommand\u00E9 aux utilisateurs de donn\u00E9es de les traiter avec pr\u00E9caution. Si des utilisateurs s''interrogent sur la validit\u00E9 de donn\u00E9es, ils sont invit\u00E9s \u00E0 contacter l''administrateur de la base de donn\u00E9es ({0}).
Modified: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties
===================================================================
--- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_fr.properties 2011-01-17 17:03:28 UTC (rev 519)
@@ -31,20 +31,85 @@
message.index.paragraph3=Chaque s\u00E9rie de campagnes est conduite selon une strat\u00E9gie d''\u00E9chantillonnage sp\u00E9cifique. Sauf cas particuliers, les analyses et interpr\u00E9tations doivent \u00EAtre conduites par s\u00E9rie, en prenant en compte les strat\u00E9gies d''\u00E9chantillonnage propres \u00E0 chacune de ces s\u00E9ries. Sur le site, les donn\u00E9es sont pr\u00E9sent\u00E9es par s\u00E9rie.
message.index.paragraph4=Dans les tables de donn\u00E9es, toutes les esp\u00E8ces sont identifi\u00E9es selon le r\u00E9f\u00E9rentiel taxinomique du Syst\u00E8me d''informations halieutiques de l''Ifremer ({0}).
message.index.datatypetitle=Quatre types de donn\u00E9es sont pr\u00E9sent\u00E9es
-message.index.datatype1=Des donn\u00E9es par op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral par trait de chalut)
-message.index.datatype2=Des cartes de distribution par esp\u00E8ce et par zone
-message.index.datatype3=Des indices biologiques par esp\u00E8ce et par zone
-message.index.datatype4=Des indices de communaut\u00E9 par zone.
+message.index.datatypesource=Des donn\u00E9es par op\u00E9ration d''\u00E9chantillonnage (en g\u00E9n\u00E9ral par trait de chalut)
+message.index.datatypemap=Des cartes de distribution par esp\u00E8ce et par zone
+message.index.datatypepop=Des indices biologiques par esp\u00E8ce et par zone
+message.index.datatypecom=Des indices de communaut\u00E9 par zone.
message.index.quotetitle=Pour citer ce site
message.index.quotemessage=Ifremer {0,date,yyyy}. Indices de populations et de communautés issus des campagnes de surveillance halieutique de l''Ifremer. {1} ({0,date,dd MMMM})
message.index.qualitytitle=Avertissement qualit\u00E9
message.index.qualitymessage=Avertissement qualit\u00E9
-message.common.selectpop=Selectionnez un population
+message.index.surveytitle=Description des campagnes
+message.index.surveyparagraph=Des manuels des protocoles d\u00E9crivent les modalit\u00E9s techniques de r\u00E9alisation de chaque s\u00E9rie de campagnes.
+message.common.selectpop=Selectionnez une population
message.common.selectzone=Selectionnez une zone
message.common.selectfacade=Selectionnez une facade
message.common.selectindicator=Selectionnez un indicateur
-message.common.noresults=Aucun résultat disponible
+message.common.selectspecies=Selectionnez une esp\u00E8ces
+message.common.noresults=Aucun r\u00E9sultat disponible
message.source.download=T\u00E9l\u00E9charger
+message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer
+message.survey.paragraph1=Les campagnes de p\u00EAche scientifique standardis\u00E9es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m\u00EAmes m\u00E9thodes d\u2019\u00E9chantillonnage. Elles sont toujours r\u00E9alis\u00E9es dans la m\u00EAme zone, \u00E0 la m\u00EAme saison, avec des engins de p\u00EAche standardis\u00E9s, afin que les donn\u00E9es soient comparables d''ann\u00E9e en ann\u00E9e. Elles servent \u00E0 d\u00E9crire les esp\u00E8ces, qu''elles soient commerciales ou non, d\'une zone et \u00E0 observer les changements s\u2019il y en a. Les poissons, les mollusques et les crustac\u00E9s sont d\u00E9nombr\u00E9s, mesur\u00E9s et pes\u00E9s. Certains d\'entre eux font l''objet de pr\u00E9l\u00E8vements biologiques. Chaque campagne fournit ainsi une repr\u00E9sentation quantitative de l''ensemble des esp\u00E8ces de la zone \u00E0 une p\u00E9riode donn\u00E9e. Selon les s\u00E9ries, d'''autres informations sont relev\u00E9es (temp\u00E9rature, salinit\u00E9, macrofaune, observation des mammif\u00E8res marins, oiseaux, macro d\u00E9chets etc., mais ne sont pas pr\u00E9sent\u00E9es dans ce site)
+message.survey.paragraph2=Depuis une vingtaine d''ann\u00E9es, l''Ifremer organise des campagnes de p\u00EAche scientifique en mer du Nord, en Manche, en Atlantique et en M\u00E9diterran\u00E9e concernant les ressources d\u00E9mersales et benthiques. L''objectif prioritaire est de produire des indices d''abondance des principales esp\u00E8ces commerciales. Elles recueillent \u00E9galement des donn\u00E9es sur les esp\u00E8ces captur\u00E9es non commerciales. Elles contribuent ainsi aux connaissances n\u00E9cessaires au d\u00E9veloppement de l''approche \u00E9cosyst\u00E9mique des p\u00EAches, notamment dans le cadre de la politique commune des p\u00EAches et plus largement de la strat\u00E9gie marine de l''Union europ\u00E9enne.
+message.survey.dataengintitle=Diff\u00E9rents engins d''\u00E9chantillonnage sont utilis\u00E9s :
+message.survey.dataenginfond=Un chalut de fond \u00E0 grande ouverture verticale pour l''observation des ressources d\u00E9mersales, sur les plateaux continentaux et le haut des pentes continentales (accores) en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne, golfe du Lion et Est de la Corse,
+message.survey.dataenginperche=Un chalut \u00E0 perche pour les zones tr\u00E8s c\u00F4ti\u00E8res et les estuaires lors des campagnes visant les juv\u00E9niles de poissons plats : baies de Somme et de Vilaine,
+message.survey.dataengincasier=Un \u00E9chantillonnage au casier pour les campagnes d''\u00E9valuation des grands crustac\u00E9s, en particulier le homard, aux abords du cap de Flamanville.
+message.survey.paragraph3=Les campagnes sont r\u00E9alis\u00E9es selon des plans d''\u00E9chantillonnage standardis\u00E9s. L\u2019engin de p\u00EAche et son gr\u00E9ement, la position des stations, le tri des captures, les pr\u00E9l\u00E8vements biologiques suivent des protocoles fix\u00E9s.
+message.survey.paragraph4=Pour les campagnes coordonn\u00E9es entre navires de recherche des pays riverains en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne et M\u00E9diterran\u00E9e, les protocoles sont communs \u00E0 l''ensemble des pays partenaires. Les traits de chalut des diff\u00E9rents navires de recherche sont comparables.
+message.survey.paragraph5=Chaque zone \u00E9tudi\u00E9e est d\u00E9coup\u00E9e en strates en fonction de la profondeur, de la latitude ou d''autres crit\u00E8res. L''\u00E9chantillonnage pr\u00E9voit un nombre de traits de chalut ou de mouillages de casiers par strate.
+message.survey.paragraph6=Dans une campagne de chalutage scientifique, les positions des traits de chalut sont choisies selon un plan d''\u00E9chantillonnage statistique. L''objectif n''est pas d''obtenir les meilleures captures possibles comme le recherchent les p\u00EAcheurs, mais de r\u00E9colter des donn\u00E9es comparables d''une ann\u00E9e sur l''autre afin de relever des \u00E9volutions.
+message.survey.detailstitle=Caract\u00E9ristiques des campagnes de surveillance halieutique de l''Ifremer
+message.survey.merdunord=Fa\u00E7ade Mer du Nord
+message.survey.merdunord.sudmerdunord=Sud mer du Nord
+message.survey.merdunord.sudmerdunord.desc=Contribution fran\u00E7aise d''un mois \u00E0 la campagne internationale IBTS (International Bottom Trawl Survey) au premier trimestre, tous les ans depuis 1980, au chalut de fond \u00E0 grande ouverture verticale. En moyenne, le navire fran\u00E7ais fait 58 chalutages par an. Le sud de la mer du Nord est couvert par 4 navires (fran\u00E7ais, belge, danois et allemand) qui r\u00E9alisent en tout environ 200 traits par an. Chaque trait dure une demi-heure et couvre une surface d\'environ 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 678\u00A0000\u00A0km\u00B2 de la zone.
+message.survey.merdunord.sudmerdunord.plus=Pour en savoir plus sur les campagnes IBTS
+message.survey.merdunord.sudmerdunord.ibts6=Manuel des protocoles IBTS - Révision VI (1999)
+message.survey.merdunord.sudmerdunord.ibts7=Manuel des protocoles IBTS - Révision VII (2004)
+message.survey.mancheorientale=Fa\u00E7ade Manche orientale
+message.survey.mancheorientale.mancheorientale=Manche orientale
+message.survey.mancheorientale.mancheorientale.desc=Campagne fran\u00E7aise CGFS (Channel Ground Fish Survey) d''un mois en octobre, coordonn\u00E9e au plan international avec les campagnes IBTS. La campagne a lieu tous les ans depuis 1988. En moyenne 90 traits d''une demi-heure, au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d''environ 0,03 km\u00B2. Cette campagne est repr\u00E9sentative des 70 748 km\u00B2 de la Manche orientale.
+message.survey.mancheorientale.mancheorientale.plus=Pour en savoir plus sur les campagnes CGFS
+message.survey.mancheorientale.mancheorientale.cgfs1=Manuel des protocoles CGFS - Version 1.0 (2002)
+message.survey.mancheorientale.baiedesomme=Baie de Somme
+message.survey.mancheorientale.baiedesomme.desc=Campagne de p\u00EAche sur la nourricerie de la baie de Somme (NourSomme) d''une semaine en septembre-octobre, tous les ans depuis 1995, aux chaluts \u00E0 perche de 2 m\u00E8tres de large dans la partie la plus estuarienne de la baie et 3 m\u00E8tres dans la partie externe, plus marine. En moyenne 50 chalutages sont r\u00E9alis\u00E9s chaque ann\u00E9e. Ils durent en moyenne 7 minutes sur une surface de 0,001 km\u00B2 chacun dans la partie interne de la baie et 15 minutes sur une surface d''environ 0,004 km\u00B2 dans la partie externe. Cette campagne est repr\u00E9sentative des 720 km\u00B2 de la baie.
+message.survey.mancheorientale.baiedesomme.plus=Pour en savoir plus sur les campagnes NourSomme
+message.survey.mancheorientale.baiedesomme.noursomme1=Manuel des protocoles Nourriceries Somme - V 1.0 (2002)
+message.survey.mancheoccidentale=Fa\u00E7ade Manche occidentale
+message.survey.mancheoccidentale.flamanville=Abords du cap de Flamanville
+message.survey.mancheoccidentale.flamanville.desc=Deux campagnes de 15 jours aux casiers \u00E0 crustac\u00E9s aux abords du cap de Flamanville (CrustaFlam), en juin et septembre, depuis 1986 : 1200 casiers relev\u00E9s par campagne sur une zone de 26 km\u00B2.
+message.survey.mancheoccidentale.flamanville.plus=Pour en savoir plus sur les campagnes CrustFlam
+message.survey.mancheoccidentale.flamanville.crustaflam1=Manuel des protocoles CRUSTAFLAM - Version 1.0 (2003)
+message.survey.atlantique=Fa\u00E7ade Atlantique
+message.survey.atlantique.celtique=Mer Celtique
+message.survey.atlantique.celtique.desc=Campagne Evhoe (Evaluation des ressources halieutiques de l''ouest europ\u00E9en) d''un mois au quatri\u00E8me trimestre, tous les ans depuis 1997. En moyenne 75 traits d''une demi-heure, au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d''environ 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 150 000 km\u00B2 de la mer Celtique.
+message.survey.atlantique.celtique.plus=Pour en savoir plus sur les campagnes Evhoe
+message.survey.atlantique.celtique.evhoe1=Manuel des protocoles EVHOE - Version 1.0 (2005)
+message.survey.atlantique.gascogne=Golfe de Gascogne
+message.survey.atlantique.gascogne.desc=Campagne Evhoe (Evaluation des ressources halieutiques de l''ouest europ\u00E9en) d''un mois au quatri\u00E8me trimestre, tous les ans depuis 1992 (sauf en 1993 et 1996). En moyenne, 70 traits de chalut d''une demi-heure au chalut de fond \u00E0 grande ouverture verticale, sont r\u00E9alis\u00E9s. Chaque trait couvre une surface de 0,067 km\u00B2. Cette campagne est repr\u00E9sentative des 72 500 km\u00B2 du golfe de Gascogne. La campagne Evhoe couvre donc le golfe de Gascogne et la mer Celtique avec le m\u00EAme protocole. De plus elle est coordonn\u00E9e internationalement, dans le cadre des campagnes IBTS, avec une campagne espagnole en mer Cantabrique, une campagne irlandaise et une campagne anglaise en mer Celtique.
+message.survey.atlantique.gascogne.plus=Pour en savoir plus sur les campagnes Evhoe
+message.survey.atlantique.gascogne.evhoe1=Manuel des protocoles EVHOE - Version 1.0 (2005)
+message.survey.atlantique.vilaine=Baie de Vilaine
+message.survey.atlantique.vilaine.desc=Campagne sur la nourricerie de la baie de Vilaine (NourVil), d''une semaine \u00E0 l''automne, tous les ans de 1980 \u00E0 2010, sauf en 1991, 1994, 1995, 1998, 1999, 2006 et 2007, au chalut \u00E0 perche de 3 m\u00E8tres de large. En moyenne, 30 chalutages de 15 minutes sont r\u00E9alis\u00E9s. Chaque trait couvre une surface d\'environ 0,0041 km\u00B2. Cette campagne est repr\u00E9sentative des 330 km\u00B2 de la baie.
+message.survey.atlantique.vilaine.plus=Pour en savoir plus sur les campagnes Nourvil
+message.survey.atlantique.vilaine.nourvil1=Manuel des protocoles Nourriceries Gascogne - V 1.0 (2002)
+message.survey.mediterranee=Fa\u00E7ade M\u00E9diterran\u00E9e
+message.survey.mediterranee.golfelion=Golfe du Lion
+message.survey.mediterranee.golfelion.desc=Contribution fran\u00E7aise aux campagnes internationales Medits (International bottom Trawl Surveys in the Mediterranean), d''un mois au deuxi\u00E8me trimestre tous les ans depuis 1994 au chalut de fond \u00E0 grande ouverture verticale \u00E0 ailes courtes. En moyenne 69 chalutages sont r\u00E9alis\u00E9s, d''une demi-heure couvrant une surface d''environ 0,05 km\u00B2 chacun pour les profondeurs inf\u00E9rieures \u00E0 200 m\u00E8tres et d''une heure (surface d''environ 0,1\u00A0km\u00B2) pour les profondeurs sup\u00E9rieures \u00E0 200 m\u00E8tres. Medits est repr\u00E9sentative des 13 860 km\u00B2 du golfe de Lion.
+message.survey.mediterranee.golfelion.plus=Pour en savoir plus sur les campagnes Medits
+message.survey.mediterranee.golfelion.medits1=Manuel des protocoles Medits, Version 1 (1994)
+message.survey.mediterranee.golfelion.medits2=Manuel des protocoles Medits, Version 2 (1995)
+message.survey.mediterranee.golfelion.medits3=Manuel des protocoles Medits, Version 3 (1999)
+message.survey.mediterranee.golfelion.medits4=Manuel des protocoles Medits, Version 4 (2001)
+message.survey.mediterranee.golfelion.medits5=Manuel des protocoles Medits, Version 5 (2007)
+message.survey.mediterranee.estcorse=Est de la Corse
+message.survey.mediterranee.estcorse.desc=Contribution fran\u00E7aise \u00E0 la campagne internationale Medits (International bottom Trawl Surveys in the Mediterranean), d''une semaine au printemps, tous les ans depuis 1994, sauf en 2002, au chalut de fond \u00E0 grande ouverture verticale \u00E0 ailes courtes. En moyenne 20 chalutages sont r\u00E9alis\u00E9s, d''une demi-heure couvrant une surface d''environ 0,05 km\u00B2 chacun pour les profondeurs inf\u00E9rieures \u00E0 200 m\u00E8tres et d\'une heure (surface d\'environ 0,1\u00A0km\u00B2) pour les profondeurs sup\u00E9rieures \u00E0 200 m\u00E8tres. La campagne est repr\u00E9sentative des 4 562 km\u00B2 du plateau insulaire de l\'est de la Corse.
+message.survey.mediterranee.estcorse.plus=Pour en savoir plus sur les campagnes Medits
+message.survey.mediterranee.estcorse.medits1=Manuel des protocoles Medits, Version 1 (1994)
+message.survey.mediterranee.estcorse.medits2=Manuel des protocoles Medits, Version 2 (1995)
+message.survey.mediterranee.estcorse.medits3=Manuel des protocoles Medits, Version 3 (1999)
+message.survey.mediterranee.estcorse.medits4=Manuel des protocoles Medits, Version 4 (2001)
+message.survey.mediterranee.estcorse.medits5=Manuel des protocoles Medits, Version 5 (2007)
message.quality.paragraph1=Bien que les donn\u00E9es aient \u00E9t\u00E9 pr\u00E9cautionneusement contr\u00F4l\u00E9es par l''Ifremer, des d\u00E9fauts inh\u00E9rents \u00E0 l''agr\u00E9gation des informations peuvent persister. Par exemple\u00A0:
message.quality.paragraph2=En d\u00E9pit du fait que toutes les donn\u00E9es de toutes les s\u00E9ries de campagnes soient pr\u00E9sent\u00E9es selon le m\u00EAme format, sauf cas particuliers des diff\u00E9rences dans les strat\u00E9gies d''observation emp\u00EAchent la combinaison de donn\u00E9es de diff\u00E9rentes campagnes dans une m\u00EAme analyse. Par exemple, la capturabilit\u00E9 d\'une m\u00EAme esp\u00E8ce varie selon le type d''engin d''\u00E9chantillonnage utilis\u00E9. Il en r\u00E9sulte que chaque engin capture un sous-ensemble particulier des bioc\u00E9noses \u00E9chantillonn\u00E9es.
message.quality.paragraph3=Une propri\u00E9t\u00E9 commune aux s\u00E9ries d''observations \u00E0 la mer est l''\u00E9volution dans le temps de la comp\u00E9tence des \u00E9quipes embarqu\u00E9es pour la d\u00E9termination des esp\u00E8ces. Il peut en r\u00E9sulter des apparitions, des disparitions ou des assignations sous un m\u00EAme nom de taxons proches dans les jeux de donn\u00E9es, non repr\u00E9sentatifs de l''\u00E9volution des populations concern\u00E9es dans l''\u00E9cosyst\u00E8me.
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/indicator.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -30,7 +30,7 @@
<title>Coser</title>
</head>
<body>
- <img src="<s:url value='/images/zonesmap.jpg' />" />
+ <img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/zone.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -30,8 +30,20 @@
</head>
<body>
- <img src="<s:url value='/images/zonesmap.jpg' />" />
+ <!-- utilisé dynamiquement par le script JS -->
+ <s:iterator value="zonesPictures.entrySet()">
+ <div id="coserzonemap<s:property value='%{key}' />" style="display:none">
+ <div>
+ <img src="<s:url value='/images/zones/' /><s:property value='%{value}' />" style="width: 590px; heigth: 812px"/>
+ </div>
+ <s:property value='%{zonesMetaInfo.get(key)}' />
+ </div>
+ </s:iterator>
+ <div id="coserzonemap">
+ <img src="<s:url value='/images/zonesmap.jpg' />" />
+ </div>
+
<br />
<s:if test="%{zones.isEmpty()}">
@@ -39,7 +51,8 @@
</s:if>
<s:else>
<s:form action="indicator" method="get">
- <s:select name="zone" list="zones" label="%{getText('message.common.selectzone')}" />
+ <s:select name="zone" list="zones" label="%{getText('message.common.selectzone')}" emptyOption="true"
+ onchange="javascript:coserShowSelectedZoneMap(this, 'coserzonemap')"/>
<s:submit label="Suite"/>
</s:form>
</s:else>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/index.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/index.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/index.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -37,10 +37,10 @@
<p>
<h2><s:text name="message.index.datatypetitle" /></h2>
<ul>
- <li><s:a action="facade" namespace='/source'><s:text name="message.index.datatype1" /></s:a></li>
- <li><s:a action="facade" namespace='/map'><s:text name="message.index.datatype2" /></s:a></li>
- <li><s:a action="facade" namespace='/pop'><s:text name="message.index.datatype3" /></s:a></li>
- <li><s:a action="facade" namespace='/com'><s:text name="message.index.datatype4" /></s:a></li>
+ <li><s:a action="facade" namespace='/map'><s:text name="message.index.datatypemap" /></s:a></li>
+ <li><s:a action="facade" namespace='/pop'><s:text name="message.index.datatypepop" /></s:a></li>
+ <li><s:a action="facade" namespace='/com'><s:text name="message.index.datatypecom" /></s:a></li>
+ <li><s:a action="facade" namespace='/source'><s:text name="message.index.datatypesource" /></s:a></li>
</ul>
</p>
@@ -49,8 +49,15 @@
<s:param><a href="http://www.ifremer.fr/sih/">www.ifremer.fr/sih/</a></s:param>
</s:text>
</p>
-
+
<p>
+ <h2><s:text name="message.index.surveytitle" /></h2>
+ <s:a action="survey" namespace='/'>
+ <s:text name="message.index.surveyparagraph" />
+ </s:a>
+ </p>
+
+ <p>
<span style="font-weight:bold"><s:text name="message.index.qualitytitle"/> :</span>
<s:a action="quality"><s:text name="message.index.qualitymessage" /></s:a>
</p>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -34,7 +34,7 @@
<br />
- <s:form action="zone" method="get">
+ <s:form action="survey" method="get">
<s:select name="facade" list="facades" label="%{getText('message.common.selectfacade')}" />
<s:submit label="Suite"/>
</s:form>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -32,7 +32,7 @@
<body>
<img src="<s:url action='map-data'>
- <s:param name="zone" value="%{zone}" />
+ <s:param name="survey" value="%{survey}" />
<s:param name="species" value="%{species}" />
</s:url>" />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/species.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -31,13 +31,13 @@
</head>
<body>
- <img src="<s:url value='/images/zonesmap.jpg' />" />
+ <img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
<s:form action="map" method="get">
<s:select name="species" list="species" label="%{getText('message.common.selectspecies')}" />
- <s:hidden name="zone" property="zone"/>
+ <s:hidden name="survey" property="survey"/>
<s:submit label="Suite"/>
</s:form>
</body>
Copied: trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp (from rev 517, trunk/coser-web/src/main/webapp/WEB-INF/content/map/zone.jsp)
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp (rev 0)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/survey.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,47 @@
+<!--
+ #%L
+ Coser :: Web
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<%@taglib uri="/struts-tags" prefix="s" %>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>Coser</title>
+ </head>
+ <body>
+
+ <img src="<s:url value='/images/zonesmap.jpg' />" />
+
+ <br />
+
+ <s:if test="%{zones.isEmpty()}">
+ <s:text name="message.common.noresults"></s:text>
+ </s:if>
+ <s:else>
+ <s:form action="species" method="get">
+ <s:select name="survey" list="surveys" label="%{getText('message.common.selectzone')}" />
+ <s:submit label="Suite"/>
+ </s:form>
+ </s:else>
+ </body>
+</html>
\ No newline at end of file
Deleted: trunk/coser-web/src/main/webapp/WEB-INF/content/map/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/map/zone.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/zone.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -1,47 +0,0 @@
-<!--
- #%L
- Coser :: Web
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
- %%
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- #L%
- -->
-<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<%@taglib uri="/struts-tags" prefix="s" %>
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Coser</title>
- </head>
- <body>
-
- <img src="<s:url value='/images/zonesmap.jpg' />" />
-
- <br />
-
- <s:if test="%{zones.isEmpty()}">
- <s:text name="message.common.noresults"></s:text>
- </s:if>
- <s:else>
- <s:form action="species" method="get">
- <s:select name="zone" list="zones" label="%{getText('message.common.selectzone')}" />
- <s:submit label="Suite"/>
- </s:form>
- </s:else>
- </body>
-</html>
\ No newline at end of file
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/indicator.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -31,7 +31,7 @@
</head>
<body>
- <img src="<s:url value='/images/zonesmap.jpg' />" />
+ <img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
<br />
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/species.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -31,9 +31,8 @@
</head>
<body>
+ <img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
- <img src="<s:url value='/images/zonesmap.jpg' />" />
-
<br />
<s:form action="indicator" method="get">
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/zone.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -27,10 +27,10 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Coser</title>
- <script type="text/javascript" language="javascript" src="<s:url value='/js/coser.js' />"></script>
</head>
<body>
+ <!-- utilisé dynamiquement par le script JS -->
<s:iterator value="zonesPictures.entrySet()">
<div id="coserzonemap<s:property value='%{key}' />" style="display:none">
<div>
@@ -40,7 +40,6 @@
<s:property value='%{zonesMetaInfo.get(key)}' />
</div>
</s:iterator>
-
<div id="coserzonemap">
<img src="<s:url value='/images/zonesmap.jpg' />" />
</div>
@@ -52,7 +51,7 @@
</s:if>
<s:else>
<s:form action="species" method="get">
- <s:select name="zone" list="zones" label="%{getText('message.common.selectpop')}" emptyOption="true"
+ <s:select name="zone" list="zones" label="%{getText('message.common.selectzone')}" emptyOption="true"
onchange="javascript:coserShowSelectedZoneMap(this, 'coserzonemap')"/>
<s:submit label="Suite"/>
</s:form>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -30,6 +30,8 @@
</head>
<body>
+ <img src="<s:url value='/images/zones/' /><s:property value='zonePicture' />" style="width: 590px; heigth: 812px" />
+
<s:a action="source-data">
<s:param name="zone" value="%{zone}" />
<s:text name="message.source.download"></s:text>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/zone.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -30,8 +30,20 @@
</head>
<body>
- <img src="<s:url value='/images/zonesmap.jpg' />" />
+ <!-- utilisé dynamiquement par le script JS -->
+ <s:iterator value="zonesPictures.entrySet()">
+ <div id="coserzonemap<s:property value='%{key}' />" style="display:none">
+ <div>
+ <img src="<s:url value='/images/zones/' /><s:property value='%{value}' />" style="width: 590px; heigth: 812px"/>
+ </div>
+ <s:property value='%{zonesMetaInfo.get(key)}' />
+ </div>
+ </s:iterator>
+ <div id="coserzonemap">
+ <img src="<s:url value='/images/zonesmap.jpg' />" />
+ </div>
+
<br />
<s:if test="%{zones.isEmpty()}">
@@ -39,7 +51,8 @@
</s:if>
<s:else>
<s:form action="source" method="get">
- <s:select name="zone" list="zones" label="%{getText('message.common.selectzone')}" />
+ <s:select name="zone" list="zones" label="%{getText('message.common.selectzone')}" emptyOption="true"
+ onchange="javascript:coserShowSelectedZoneMap(this, 'coserzonemap')"/>
<s:submit label="Suite"/>
</s:form>
</s:else>
Added: trunk/coser-web/src/main/webapp/WEB-INF/content/survey.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/survey.jsp (rev 0)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/survey.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -0,0 +1,158 @@
+<!--
+ #%L
+ Coser :: Web
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<%@taglib uri="/struts-tags" prefix="s" %>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title><s:text name="message.quality.title" /></title>
+ </head>
+ <body>
+
+ <h2>
+ <s:text name="message.survey.maintitle" />
+ </h2>
+
+ <p><s:text name="message.survey.paragraph1" /></p>
+ <p><s:text name="message.survey.paragraph2" /></p>
+
+ <p>
+ <p><s:text name="message.survey.dataengintitle" /></p>
+ <ul>
+ <li><s:text name="message.survey.dataenginfond" /></li>
+ <li><s:text name="message.survey.dataenginperche" /></li>
+ <li><s:text name="message.survey.dataengincasier" /></li>
+ </ul>
+ </p>
+
+ <p><s:text name="message.survey.paragraph3" /></p>
+ <p><s:text name="message.survey.paragraph4" /></p>
+ <p><s:text name="message.survey.paragraph5" /></p>
+ <p><s:text name="message.survey.paragraph6" /></p>
+
+ <h2>
+ <s:text name="message.survey.detailstitle" />
+ </h2>
+
+ <!-- Facade -->
+ <h3><s:text name="message.survey.merdunord" /></h3>
+ <h4><s:text name="message.survey.merdunord.sudmerdunord" /></h4>
+ <p><s:text name="message.survey.merdunord.sudmerdunord.desc" /></p>
+ <p>
+ <s:text name="message.survey.merdunord.sudmerdunord.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.merdunord.sudmerdunord.ibts6" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.merdunord.sudmerdunord.ibts7" /></a></li>
+ </ul>
+ </p>
+
+ <!-- Facade -->
+ <h3><s:text name="message.survey.mancheorientale" /></h3>
+ <h4><s:text name="message.survey.mancheorientale.mancheorientale" /></h4>
+ <p><s:text name="message.survey.mancheorientale.mancheorientale.desc" /></p>
+ <p>
+ <s:text name="message.survey.mancheorientale.mancheorientale.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mancheorientale.mancheorientale.cgfs1" /></a></li>
+ </ul>
+ </p>
+
+ <h4><s:text name="message.survey.mancheorientale.baiedesomme" /></h4>
+ <p><s:text name="message.survey.mancheorientale.baiedesomme.desc" /></p>
+ <p>
+ <s:text name="message.survey.mancheorientale.baiedesomme.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mancheorientale.baiedesomme.noursomme1" /></a></li>
+ </ul>
+ </p>
+
+ <!-- Facade -->
+ <h3><s:text name="message.survey.mancheoccidentale" /></h3>
+ <h4><s:text name="message.survey.mancheoccidentale.flamanville" /></h4>
+ <p><s:text name="message.survey.mancheoccidentale.flamanville.desc" /></p>
+ <p>
+ <s:text name="message.survey.mancheoccidentale.flamanville.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mancheoccidentale.flamanville.crustaflam1" /></a></li>
+ </ul>
+ </p>
+
+ <!-- Facade -->
+ <h3><s:text name="message.survey.atlantique" /></h3>
+ <h4><s:text name="message.survey.atlantique.celtique" /></h4>
+ <p><s:text name="message.survey.atlantique.celtique.desc" /></p>
+ <p>
+ <s:text name="message.survey.atlantique.celtique.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.atlantique.celtique.evhoe1" /></a></li>
+ </ul>
+ </p>
+
+ <h4><s:text name="message.survey.atlantique.gascogne" /></h4>
+ <p><s:text name="message.survey.atlantique.gascogne.desc" /></p>
+ <p>
+ <s:text name="message.survey.atlantique.gascogne.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.atlantique.gascogne.evhoe1" /></a></li>
+ </ul>
+ </p>
+
+ <h4><s:text name="message.survey.atlantique.vilaine" /></h4>
+ <p><s:text name="message.survey.atlantique.vilaine.desc" /></p>
+ <p>
+ <s:text name="message.survey.atlantique.vilaine.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.atlantique.vilaine.nourvil1" /></a></li>
+ </ul>
+ </p>
+
+ <!-- Facade -->
+ <h3><s:text name="message.survey.mediterranee" /></h3>
+ <h4><s:text name="message.survey.mediterranee.golfelion" /></h4>
+ <p><s:text name="message.survey.mediterranee.golfelion.desc" /></p>
+ <p>
+ <s:text name="message.survey.mediterranee.golfelion.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.golfelion.medits1" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.golfelion.medits2" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.golfelion.medits3" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.golfelion.medits4" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.golfelion.medits5" /></a></li>
+ </ul>
+ </p>
+
+ <h4><s:text name="message.survey.mediterranee.estcorse" /></h4>
+ <p><s:text name="message.survey.mediterranee.estcorse.desc" /></p>
+ <p>
+ <s:text name="message.survey.mediterranee.estcorse.plus" />
+ <ul>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.estcorse.medits1" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.estcorse.medits2" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.estcorse.medits3" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.estcorse.medits4" /></a></li>
+ <li><a href="#" target="_blank"><s:text name="message.survey.mediterranee.estcorse.medits5" /></a></li>
+ </ul>
+ </p>
+ </body>
+</html>
\ No newline at end of file
Modified: trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -30,6 +30,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><decorator:title default="Coser"/></title>
<script type="text/javascript" language="javascript" src="<s:url value='/js/jquery-1.4.4.min.js' />"></script>
+ <script type="text/javascript" language="javascript" src="<s:url value='/js/coser.js' />"></script>
<link rel="stylesheet" type="text/css" href="<s:url value='/styles/coser.css' />" />
<decorator:head/>
</head>
Modified: trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp 2011-01-17 17:02:39 UTC (rev 518)
+++ trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp 2011-01-17 17:03:28 UTC (rev 519)
@@ -30,6 +30,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><decorator:title default="Coser"/></title>
<script type="text/javascript" language="javascript" src="<s:url value='/js/jquery-1.4.4.min.js' />"></script>
+ <script type="text/javascript" language="javascript" src="<s:url value='/js/coser.js' />"></script>
<link rel="stylesheet" type="text/css" href="<s:url value='/styles/coser.css' />" />
<decorator:head/>
</head>
1
0
r518 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources/i18n coser-ui/src/main/java/fr/ifremer/coser/ui/result
by chatellier@users.labs.libre-entreprise.org 17 Jan '11
by chatellier@users.labs.libre-entreprise.org 17 Jan '11
17 Jan '11
Author: chatellier
Date: 2011-01-17 17:02:39 +0000 (Mon, 17 Jan 2011)
New Revision: 518
Log:
Prise en compte des type map et publication de r?\195?\169sultats
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2011-01-17 13:47:01 UTC (rev 517)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2011-01-17 17:02:39 UTC (rev 518)
@@ -1012,7 +1012,7 @@
}
/**
- * Save Rsufi result list in directory strucuture.
+ * Create new rsufi result list in directory structure.
*
* RSufiResult is added to selection result list by this method.
*
@@ -1044,7 +1044,6 @@
rsufiResult.setCreationDate(new Date());
}
- OutputStream outputStream = null;
try {
// sauvegarde des 2 fichiers obligatoires
File estComIndFile = new File(rsufiResult.getEstComIndPath());
@@ -1072,21 +1071,12 @@
}
}
- // sauvegarde des informations du resultat (properties)
- File propertiesFile = new File(rsufiResultDirectory, "result.properties");
- Properties props = rsufiResult.toProperties();
- outputStream = new FileOutputStream(propertiesFile);
- props.store(outputStream, null);
+ // property file
+ saveRSufiResult(rsufiResultDirectory, rsufiResult);
- if (log.isDebugEnabled()) {
- log.debug("Saving result properties file : " + propertiesFile);
- }
} catch (IOException ex) {
throw new CoserBusinessException("Can't save result properties file", ex);
}
- finally {
- IOUtils.closeQuietly(outputStream);
- }
List<RSufiResult> results = selection.getRsufiResults();
results.add(rsufiResult);
@@ -1096,6 +1086,31 @@
}
/**
+ * Save rsufi result (only property file).
+ *
+ * @param rsufiResultDirectory rsufiresult directory
+ * @param rsufiResult rsufi result
+ * @throws CoserBusinessException
+ */
+ public void saveRSufiResult(File rsufiResultDirectory, RSufiResult rsufiResult) throws CoserBusinessException {
+
+ OutputStream outputStream = null;
+ try {
+ // sauvegarde des informations du resultat (properties)
+ File propertiesFile = new File(rsufiResultDirectory, "result.properties");
+ Properties props = rsufiResult.toProperties();
+ outputStream = new FileOutputStream(propertiesFile);
+ props.store(outputStream, null);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Saving result properties file : " + propertiesFile);
+ }
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't save result properties file", ex);
+ }
+ }
+
+ /**
* Sauve une liste ordonnées de commande dans le fichier specifié.
*
* @param props proparties to add command to
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-17 13:47:01 UTC (rev 517)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-17 17:02:39 UTC (rev 518)
@@ -307,14 +307,20 @@
* Upload user selected result to coser web front-end using common http
* client.
*
+ * TODO remove les 3 listes s'il y a mieux.
+ *
* @param selectedResults selected result (collection of project/selection/rsufiresult)
+ * @param mapResults result selected as list result
+ * @param publishDataResults result selected as results published with data
* @param login remote admin login
* @param password remote admin password
* @param progress progress monitor
* @return upload error status or {@code null} if no error
* @throws CoserBusinessException
*/
- public String performResultUpload(Collection<Object[]> selectedResults, String login, String password, ProgressMonitor progress) throws CoserBusinessException {
+ public String performResultUpload(Collection<Object[]> selectedResults,
+ Collection<Object[]> mapResults, Collection<Object[]> publishDataResults,
+ String login, String password, ProgressMonitor progress) throws CoserBusinessException {
String uploadStatus = null;
@@ -323,6 +329,9 @@
// and selection with only selected results
progress.setCurrent(0);
+ progress.setText(_("coser.business.uploadresult.modifyResultOptions"));
+ modifyRSufiResults(selectedResults, mapResults, publishDataResults);
+
progress.setText(_("coser.business.uploadresult.checkcollision"));
checkDataCollision(selectedResults);
@@ -375,6 +384,58 @@
}
/**
+ * Modifie les types et options de certains résultats rsufi (map result,
+ * data sources result).
+ *
+ * @param selectedResults selected result (collection of project/selection/rsufiresult)
+ * @param mapResults map results
+ * @param publishDataResults publish data results
+ * @throws CoserBusinessException
+ */
+ protected void modifyRSufiResults(Collection<Object[]> selectedResults, Collection<Object[]> mapResults,
+ Collection<Object[]> publishDataResults) throws CoserBusinessException {
+
+ // TODO echatellier 20110117 revoir ce code
+
+ // attention, il faut sauver tout les resultats, sinon, les
+ // decochage de type map / publish result ne seront pas pris en compte
+
+ // reset type map and data source for all
+ for (Object[] selectedResult : selectedResults) {
+ RSufiResult rsufiResult = (RSufiResult)selectedResult[2];
+ rsufiResult.setMapsReferenceResult(false);
+ rsufiResult.setDataAllowed(false);
+ }
+
+ // set map type
+ for (Object[] mapResult : mapResults) {
+ RSufiResult rsufiResult = (RSufiResult)mapResult[2];
+ rsufiResult.setMapsReferenceResult(true);
+ }
+
+ // set data type
+ for (Object[] publishDataResult : publishDataResults) {
+ RSufiResult rsufiResult = (RSufiResult)publishDataResult[2];
+ rsufiResult.setDataAllowed(true);
+ }
+
+ // save all selected results
+ for (Object[] selectedResult : selectedResults) {
+ Project project = (Project)selectedResult[0];
+ Selection selection = (Selection)selectedResult[1];
+ RSufiResult rsufiResult = (RSufiResult)selectedResult[2];
+
+ File projectDirectory = new File(config.getProjectsDirectory(), project.getName());
+ File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
+ File selectionDirectory = new File(selectionsDirectory, selection.getName());
+ File resultsDirectory = new File(selectionDirectory, CoserConstants.STORAGE_RESULTS_DIRECTORY);
+ File resultDirectory = new File(resultsDirectory, rsufiResult.getName());
+
+ projectService.saveRSufiResult(resultDirectory, rsufiResult);
+ }
+ }
+
+ /**
* Met à jour les fichiers de propriétés des resultats (maps, dataSource)
* and check for duplicated couple (zoneid/resulttype (map) upload).
*
@@ -726,7 +787,7 @@
* @throws CoserBusinessException
*/
public Map<String, String> getZoneForFacade(String facade) throws CoserBusinessException {
- Map<String, String> surveyForZone = new HashMap<String, String>();
+ Map<String, String> zonesForFacade = new HashMap<String, String>();
// get subzone for main zone
Collection<String> subZones = new ArrayList<String>();
@@ -771,7 +832,7 @@
String[] zoneData = getZonesMap().get(zoneIndex);
String zoneName = zoneData[2] + " - " + zoneData[3] + " - " + zoneData[4];
- surveyForZone.put(zoneid, zoneName);
+ zonesForFacade.put(zoneid, zoneName);
}
}
}
@@ -782,10 +843,36 @@
}
}
}
-
- return surveyForZone;
+
+ return zonesForFacade;
}
+
+ /**
+ * Pour une zone principale, recupere la liste des campagnes qui sont
+ * disponible dans cette zone principale.
+ *
+ * @param facade facade (le nom de la facade principale)
+ * @return couple campagneid/campagnename
+ * @throws CoserBusinessException
+ */
+ public Map<String, String> getSurveyForFacade(String facade) throws CoserBusinessException {
+ Map<String, String> surveyForFacade = new HashMap<String, String>();
+
+ // get subzone for main zone
+ Iterator<String[]> itZone = getZonesMap().iterator(true);
+ while (itZone.hasNext()) {
+ // "id";"facade";"zone";"periode";"serie";"comment";"map"
+ String[] tuple = itZone.next();
+ if (tuple[1].equals(facade)) {
+ if (!surveyForFacade.containsKey(tuple[4])) {
+ surveyForFacade.put(tuple[4], tuple[4]);
+ }
+ }
+ }
+ return surveyForFacade;
+ }
+
/**
* Recupere la liste des cartes pour chaque id de zone sous forme de Map.
*
@@ -879,7 +966,81 @@
return result;
}
+
+ /**
+ * Recuperer la liste des populations pour une campagnes donnée.
+ *
+ * Les resultats retourné ne peuvent être que de type "carte".
+ *
+ * @param survey survey id
+ * @return map species nom info>nom officiel
+ * @throws CoserBusinessException
+ */
+ public Map<String, String> getSpeciesForSurvey(String survey) throws CoserBusinessException {
+ Map<String, String> result = new TreeMap<String, String>();
+
+ // parcours des resultats disponibles
+ File projectsDirectory = config.getWebProjectsDirectory();
+ File[] projectFiles = projectsDirectory.listFiles();
+ if (projectFiles != null) {
+ for (File projectFile : projectFiles) {
+ if (projectFile.isDirectory()) {
+ File selectionsDirectory = new File(projectFile, CoserConstants.STORAGE_SELECTION_DIRECTORY);
+ File[] selectionFiles = selectionsDirectory.listFiles();
+
+ // selection iteration
+ if (selectionFiles != null) {
+ for (File selectionFile : selectionFiles) {
+ if (selectionFile.isDirectory()) {
+ File resultsDirectory = new File(selectionFile, CoserConstants.STORAGE_RESULTS_DIRECTORY);
+ File[] resultFiles = resultsDirectory.listFiles();
+
+ // result iteration
+ if (resultFiles != null) {
+ for (File resultFile : resultFiles) {
+ if (resultFile.isDirectory()) {
+ RSufiResult rsufiResult = projectService.getRSufiResult(resultFile);
+
+ // extraction des especes pour le résultat demandé
+ if (rsufiResult.getZone() != null && rsufiResult.isMapsReferenceResult()) {
+
+ // test parmis toutes les zones disponible
+ // si le resultat appartient a une zone
+ // qui porte sur la campagne demandée
+ boolean zoneRSufiResult = false;
+ Iterator<String[]> itZone = getZonesMap().iterator(true);
+ while (itZone.hasNext()) {
+ // "id";"facade";"zone";"periode";"serie";"comment";"map"
+ String[] tuple = itZone.next();
+
+ if (tuple[4].equals(survey) && rsufiResult.getZone().equals(tuple[0])) {
+ zoneRSufiResult = true;
+ }
+ }
+
+ if (zoneRSufiResult) {
+ // load project (without data to get reftax data)
+ Project project = projectService.openProject(projectFile.getName(), projectsDirectory);
+
+ Map<String, String> resultSpecies = getRsufiResultSpecies(project, resultFile, rsufiResult);
+ result.putAll(resultSpecies);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
/**
* Recupere la liste de toutes les especes nom sci et nom off à partir
* d'un resultat.
@@ -1134,12 +1295,12 @@
* Recupere le fichier image de la carte demandées en fonction de la zone
* et de l'espece.
*
- * @param zone zone (zoneid-surveyname)
+ * @param survey survey (surveyid)
* @param species
* @return map file
* @throws CoserBusinessException
*/
- public File getMapFile(String zone, String species) throws CoserBusinessException {
+ public File getMapFile(String survey, String species) throws CoserBusinessException {
File result = null;
@@ -1166,14 +1327,30 @@
RSufiResult rsufiResult = projectService.getRSufiResult(resultFile);
// extraction des especes pour le résultat demandé
- if (rsufiResult.getZone() != null && rsufiResult.getZone().equals(zone)) {
+ if (rsufiResult.getZone() != null && rsufiResult.isMapsReferenceResult()) {
- // get survey name (other condition)
- String surveyName = projectService.getProjectSurveyName(resultFile, rsufiResult);
+ // test parmis toutes les zones disponible
+ // si le resultat appartient a une zone
+ // qui porte sur la campagne demandée
+ boolean zoneRSufiResult = false;
+ Iterator<String[]> itZone = getZonesMap().iterator(true);
+ while (itZone.hasNext()) {
+ // "id";"facade";"zone";"periode";"serie";"comment";"map"
+ String[] tuple = itZone.next();
- String mapName = surveyName + "_" + species.toUpperCase() + ".png";
- File mapsDirectory = new File(resultFile, CoserConstants.STORAGE_MAPS_DIRECTORY);
- result = new File(mapsDirectory, mapName);
+ if (tuple[4].equals(survey) && rsufiResult.getZone().equals(tuple[0])) {
+ zoneRSufiResult = true;
+ }
+ }
+
+ if (zoneRSufiResult) {
+ // get survey name (other condition)
+ String surveyName = projectService.getProjectSurveyName(resultFile, rsufiResult);
+
+ String mapName = surveyName + "_" + species.toUpperCase() + ".png";
+ File mapsDirectory = new File(resultFile, CoserConstants.STORAGE_MAPS_DIRECTORY);
+ result = new File(mapsDirectory, mapName);
+ }
}
}
}
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2011-01-17 13:47:01 UTC (rev 517)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2011-01-17 17:02:39 UTC (rev 518)
@@ -97,6 +97,7 @@
coser.business.resultupload.duplicatedresult=Result %s/%s/%s duplicate another result for zone %s \!
coser.business.selection.notValidatedControl=Not validated control \!
coser.business.uploadresult.checkcollision=Checking zone collisions
+coser.business.uploadresult.modifyResultOptions=Modify result options
coser.business.uploadresult.preparezip=Preparing zip archive\u2026
coser.business.uploadresult.sendzip=Sending zip archive\u2026
coser.config.control.diffcatchlength.description=Percentage difference allowed between catch and length (in percent, for example 5% set 5.0)
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2011-01-17 13:47:01 UTC (rev 517)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2011-01-17 17:02:39 UTC (rev 518)
@@ -97,6 +97,7 @@
coser.business.resultupload.duplicatedresult=Le r\u00E9sultat %s/%s/%s duplique un autre r\u00E9sultat pour la zone %s \!
coser.business.selection.notValidatedControl=Contr\u00F4le non valid\u00E9 \!
coser.business.uploadresult.checkcollision=V\u00E9rification des collisions de zones
+coser.business.uploadresult.modifyResultOptions=Modification des options des r\u00E9sultats
coser.business.uploadresult.preparezip=Pr\u00E9paration de l'archive zip\u2026
coser.business.uploadresult.sendzip=Envoi de l'archive zip\u2026
coser.config.control.diffcatchlength.description=Pourcentage d'\u00E9cart tol\u00E9r\u00E9 entre les captures et les tailles (en pourcent, par exemple pour 5% mettre 5.0)
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2011-01-17 13:47:01 UTC (rev 517)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2011-01-17 17:02:39 UTC (rev 518)
@@ -154,6 +154,8 @@
// get result selected by user
SelectUploadResultView parentView = view.getContextValue(SelectUploadResultView.class, JAXXUtil.PARENT);
final Collection<Object[]> selectedResult = parentView.getSelectedResultTableModel().getResultPath();
+ final Collection<Object[]> mapResult = parentView.getSelectedResultTableModel().getMapResult();
+ final Collection<Object[]> publishDataResult = parentView.getSelectedResultTableModel().getPublishDataResult();
if (CollectionUtils.isNotEmpty(selectedResult)) {
SwingWorker<String, Void> task = new SwingWorker<String, Void>() {
@@ -163,7 +165,7 @@
// get progress bar
CoserProgressBar progressBar = view.getUploadProgressBar();
WebService webService = view.getContextValue(WebService.class);
- String status = webService.performResultUpload(selectedResult, login, password, progressBar);
+ String status = webService.performResultUpload(selectedResult, mapResult, publishDataResult, login, password, progressBar);
return status;
}
catch (CoserBusinessException ex) {
1
0