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
- 1258 discussions
r543 - in trunk/coser-web: . src/main/java/fr/ifremer/coser/web src/main/java/fr/ifremer/coser/web/actions src/main/java/fr/ifremer/coser/web/actions/com src/main/java/fr/ifremer/coser/web/actions/common src/main/java/fr/ifremer/coser/web/actions/map src/main/java/fr/ifremer/coser/web/actions/pop src/main/java/fr/ifremer/coser/web/actions/source src/main/resources/i18n src/main/webapp/WEB-INF/content/source src/main/webapp/WEB-INF/decorators
by chatellier@users.labs.libre-entreprise.org 23 Jan '11
by chatellier@users.labs.libre-entreprise.org 23 Jan '11
23 Jan '11
Author: chatellier
Date: 2011-01-23 21:03:33 +0000 (Sun, 23 Jan 2011)
New Revision: 543
Log:
ACtion commune avec code commun et code layout.
Modified:
trunk/coser-web/pom.xml
trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.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/LocaleAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/FacadeAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphCsvAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java
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/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/map/SurveyAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/FacadeAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphCsvAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.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/source/SourceAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java
trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties
trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties
trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp
trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp
Modified: trunk/coser-web/pom.xml
===================================================================
--- trunk/coser-web/pom.xml 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/pom.xml 2011-01-23 21:03:33 UTC (rev 543)
@@ -71,6 +71,22 @@
<build>
<finalName>coser-${project.version}</finalName>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>coserweb.properties</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <excludes>
+ <exclude>coserweb.properties</exclude>
+ </excludes>
+ </resource>
+ </resources>
+
<plugins>
<plugin>
<groupId>org.nuiton.i18n</groupId>
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/CoserWebConfig.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -46,6 +46,11 @@
}
}
+ public String getApplicationVersion() {
+ String result = getOption(CoserWebOption.APPLICATION_VERSION.key);
+ return result;
+ }
+
/**
* Get administrator email.
*
@@ -79,6 +84,7 @@
public enum CoserWebOption {
CONFIG_FILE(CONFIG_FILE_NAME, _("coser.config.config.file.description"), "coserweb.properties"),
+ APPLICATION_VERSION("coser.application.version", _("coser.config.application.version.description"), null),
ADMIN_EMAIL("coser.admin.email", _("coser.config.config.file.description"), "harmonie at ifremer.fr"),
ADMIN_LOGIN("coser.admin.login", _("coser.config.admin.login.description"), null),
ADMIN_PASSWORD("coser.admin.password", _("coser.config.admin.password.description"), null);
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/IndexAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,25 +22,17 @@
package fr.ifremer.coser.web.actions;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
import java.util.Date;
-import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
-import org.apache.commons.io.IOUtils;
import org.apache.struts2.ServletActionContext;
-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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, recupere la date de derniere mise à jour.
@@ -51,7 +43,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class IndexAction extends ActionSupport {
+public class IndexAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/LocaleAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -25,7 +25,7 @@
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, recupere la liste des resultats.
@@ -36,7 +36,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class LocaleAction extends ActionSupport {
+public class LocaleAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/QualityAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,11 +22,8 @@
package fr.ifremer.coser.web.actions;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
-import fr.ifremer.coser.web.CoserWebConfig;
-import fr.ifremer.coser.web.ServiceFactory;
-
/**
* Quality action.
*
@@ -36,19 +33,9 @@
* Last update : $Date$
* By : $Author$
*/
-public class QualityAction extends ActionSupport {
+public class QualityAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
- /**
- * Recupere l'email dans la configuration.
- *
- * @return admin email
- */
- public String getAdminEmail() {
- CoserWebConfig config = ServiceFactory.getCoserConfig();
- String email = config.getAdminEmail();
- return email;
- }
}
Modified: 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 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/SurveyAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Survey description action.
@@ -33,7 +33,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SurveyAction extends ActionSupport {
+public class SurveyAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = -7450643911834502103L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/UploadResultAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -31,13 +31,12 @@
import org.apache.struts2.ServletActionContext;
import org.nuiton.util.StringUtil;
-import com.opensymphony.xwork2.Action;
-
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Upload results action.
@@ -50,7 +49,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class UploadResultAction implements Action {
+public class UploadResultAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3887268253160622587L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/FacadeAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/FacadeAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/FacadeAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -24,12 +24,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, affiche la liste des facades majeures.
@@ -40,7 +39,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class FacadeAction extends ActionSupport {
+public class FacadeAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions.com;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche le graphique demandé.
@@ -35,7 +35,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphAction extends ActionSupport {
+public class GraphAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphCsvAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphCsvAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphCsvAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -31,12 +31,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Télécharge les données qui ont servi a généré le graph au format CSV.
@@ -49,7 +48,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphCsvAction extends ActionSupport {
+public class GraphCsvAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -31,12 +31,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche le graphique demandé.
@@ -49,7 +48,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphDataAction extends ActionSupport {
+public class GraphDataAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: 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 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonFacade.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -24,8 +24,6 @@
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;
@@ -40,7 +38,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class CommonFacade extends ActionSupport {
+public abstract class CommonFacade extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: 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 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -28,8 +28,6 @@
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;
@@ -45,7 +43,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class CommonIndicator extends ActionSupport {
+public abstract class CommonIndicator extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: 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 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -24,8 +24,6 @@
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;
@@ -41,7 +39,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class CommonZone extends ActionSupport {
+public abstract class CommonZone extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions.map;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, recupere la liste des resultats.
@@ -33,7 +33,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class MapAction extends ActionSupport {
+public class MapAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapDataAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -30,12 +30,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Appéle par le navigateur pour recuperer le contenu de l'image.
@@ -46,7 +45,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class MapDataAction extends ActionSupport {
+public class MapDataAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SpeciesAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -27,12 +27,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Recupere la liste des especes correspondant a une campagne.
@@ -43,7 +42,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SpeciesAction extends ActionSupport {
+public class SpeciesAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/SurveyAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -24,12 +24,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche la liste des sous zones (zone).
@@ -40,7 +39,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SurveyAction extends ActionSupport {
+public class SurveyAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/FacadeAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/FacadeAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/FacadeAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -24,12 +24,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, affiche la liste des facades majeures.
@@ -40,7 +39,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class FacadeAction extends ActionSupport {
+public class FacadeAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions.pop;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche le graphique demandé.
@@ -35,7 +35,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphAction extends ActionSupport {
+public class GraphAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphCsvAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphCsvAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphCsvAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -31,12 +31,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Télécharge les données qui ont servi a généré le graph au format CSV.
@@ -49,7 +48,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphCsvAction extends ActionSupport {
+public class GraphCsvAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -31,12 +31,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche le graphique demandé.
@@ -49,7 +48,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GraphDataAction extends ActionSupport {
+public class GraphDataAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/IndicatorAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions.pop;
-import fr.ifremer.coser.web.actions.common.CommonIndicator;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, recupere la liste des resultats.
@@ -33,7 +33,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class IndicatorAction extends CommonIndicator {
+public class IndicatorAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/SpeciesAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -27,12 +27,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Action index, recupere la liste des resultats.
@@ -43,7 +42,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SpeciesAction extends ActionSupport {
+public class SpeciesAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 1663244944108703571L;
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,12 +22,11 @@
package fr.ifremer.coser.web.actions.source;
-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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche les liens de téléchargement du zip pour le projet choisit.
@@ -38,7 +37,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SourceAction extends ActionSupport {
+public class SourceAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java
===================================================================
--- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -31,12 +31,11 @@
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;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Force le téléchargement du zip.
@@ -47,7 +46,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SourceDataAction extends ActionSupport {
+public class SourceDataAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: 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 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceQualityAction.java 2011-01-23 21:03:33 UTC (rev 543)
@@ -22,7 +22,7 @@
package fr.ifremer.coser.web.actions.source;
-import com.opensymphony.xwork2.ActionSupport;
+import fr.ifremer.coser.web.actions.common.CoserAction;
/**
* Affiche l'avertissement qualité avant le téléchargement du zip.
@@ -33,7 +33,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class SourceQualityAction extends ActionSupport {
+public class SourceQualityAction extends CoserAction {
/** serialVersionUID. */
private static final long serialVersionUID = 3385467755357775199L;
Modified: trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties
===================================================================
--- trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties 2011-01-23 21:03:33 UTC (rev 543)
@@ -1,3 +1,4 @@
coser.config.admin.login.description=
coser.config.admin.password.description=
+coser.config.application.version.description=
coser.config.config.file.description=
Modified: trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties
===================================================================
--- trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties 2011-01-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties 2011-01-23 21:03:33 UTC (rev 543)
@@ -1,3 +1,4 @@
coser.config.admin.login.description=
coser.config.admin.password.description=
+coser.config.application.version.description=
coser.config.config.file.description=
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp 2011-01-23 21:03:33 UTC (rev 543)
@@ -35,7 +35,7 @@
<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:param><a href="mailto:<s:property value='adminEmail' />"><s:property value='adminEmail' /></a></s:param>
</s:text>
</p>
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2011-01-23 21:03:33 UTC (rev 543)
@@ -74,8 +74,8 @@
<div class="mgt20">
<h3><s:text name="message.layout.oceanicdatatitle" /></h3>
<ul>
- <li><a href="http://www.ifremer.fr/sismer/index_FR.htm" class="lien"><s:text name="message.layout.oceanicdata1" /></a></li>
- <li><a href="http://www.ifremer.fr/sih/" class="lien"><s:text name="message.layout.oceanicdata2" /></a></li>
+ <li><a href="http://www.ifremer.fr/sismer/index_FR.htm" class="lien" target="_blank"><s:text name="message.layout.oceanicdata1" /></a></li>
+ <li><a href="http://www.ifremer.fr/sih/" class="lien" target="_blank"><s:text name="message.layout.oceanicdata2" /></a></li>
</ul>
</div>
</div>
@@ -83,8 +83,31 @@
</div>
<div id="footer">
<ul class="clearfix">
- <li><a href="harmonie at ifremer.fr">Contact</a></li>
- <li><a href="#">Mentions Légales</a></li>
+ <li>
+ <a href="http://coser.labs.libre-entreprise.org/" title="Documentation de l'application" target="_blank">
+ Coser
+ </a>
+ </li>
+ <li>
+ <a href="http://coser.labs.libre-entreprise.org/coser/release-note.html" title="Modifications faites pour cette version" target="_blank">
+ <s:property value='applicationVersion' />
+ </a>
+ </li>
+ <li>
+ <a href="mailto:harmonie at ifremer.fr" title="Contacter un responsable">
+ Contact
+ </a>
+ </li>
+ <li>
+ <a href="http://www.gnu.org/licenses/agpl.html" title="Licence AGPL v3" target="_blank">
+ AGPLv3
+ </a>
+ </li>
+ <li>
+ Copyright 2010 - 2011
+ <a href="http://www.ifremer.fr" title="Ifremer" target="blank">Ifremer</a>,
+ <a href="http://www.codelutin.com" title="Code Lutin" target="blank">Code Lutin</a>
+ </li>
</ul>
</div>
</body>
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-23 19:49:52 UTC (rev 542)
+++ trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp 2011-01-23 21:03:33 UTC (rev 543)
@@ -85,8 +85,31 @@
</div>
<div id="footer">
<ul class="clearfix">
- <li><a href="harmonie at ifremer.fr">Contact</a></li>
- <li><a href="#">Mentions Légales</a></li>
+ <li>
+ <a href="http://coser.labs.libre-entreprise.org/" title="Documentation de l'application" target="_blank">
+ Coser
+ </a>
+ </li>
+ <li>
+ <a href="http://coser.labs.libre-entreprise.org/coser/release-note.html" title="Modifications faites pour cette version" target="_blank">
+ <s:property value='applicationVersion' />
+ </a>
+ </li>
+ <li>
+ <a href="mailto:harmonie at ifremer.fr" title="Contacter un responsable">
+ Contact
+ </a>
+ </li>
+ <li>
+ <a href="http://www.gnu.org/licenses/agpl.html" title="Licence AGPL v3" target="_blank">
+ AGPLv3
+ </a>
+ </li>
+ <li>
+ Copyright 2010 - 2011
+ <a href="http://www.ifremer.fr" title="Ifremer" target="blank">Ifremer</a>,
+ <a href="http://www.codelutin.com" title="Code Lutin" target="blank">Code Lutin</a>
+ </li>
</ul>
</div>
</body>
1
0
r542 - trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map
by chatellier@users.labs.libre-entreprise.org 23 Jan '11
by chatellier@users.labs.libre-entreprise.org 23 Jan '11
23 Jan '11
Author: chatellier
Date: 2011-01-23 19:49:52 +0000 (Sun, 23 Jan 2011)
New Revision: 542
Log:
Move texts to first page for each part.
Remove download map as pdf.
Removed:
trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java
Deleted: 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 2011-01-23 19:49:45 UTC (rev 541)
+++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapPdfAction.java 2011-01-23 19:49:52 UTC (rev 542)
@@ -1,98 +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.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;
- }
-}
1
0
r541 - in trunk/coser-web/src/main/webapp/WEB-INF/content: com map pop source
by chatellier@users.labs.libre-entreprise.org 23 Jan '11
by chatellier@users.labs.libre-entreprise.org 23 Jan '11
23 Jan '11
Author: chatellier
Date: 2011-01-23 19:49:45 +0000 (Sun, 23 Jan 2011)
New Revision: 541
Log:
Move texts to first page for each part.
Remove download map as pdf.
Modified:
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/map/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.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/source/facade.jsp
trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp
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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/facade.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -32,6 +32,8 @@
<h2><s:text name="message.com.title" /></h2>
+ <p><s:text name="message.com.paragraph1" /></p>
+
<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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/com/graph.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -31,8 +31,6 @@
<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}" />
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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -32,6 +32,14 @@
<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 value='/images/zonesmap.jpg' />" />
<br />
@@ -40,5 +48,16 @@
<s:select name="facade" list="facades" label="%{getText('message.common.selectfacade')}" />
<s:submit label="Suite"/>
</s:form>
+
+ <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>
+ </p>
</body>
</html>
\ No newline at end of file
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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -32,35 +32,10 @@
<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}" />
<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>
- <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>
- </p>
</body>
</html>
\ No newline at end of file
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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/facade.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -32,6 +32,9 @@
<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 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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/pop/graph.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -33,9 +33,6 @@
<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/source/facade.jsp
===================================================================
--- trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp 2011-01-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/facade.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -32,6 +32,16 @@
<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/zonesmap.jpg' />" />
<br />
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-22 19:30:18 UTC (rev 540)
+++ trunk/coser-web/src/main/webapp/WEB-INF/content/source/source.jsp 2011-01-23 19:49:45 UTC (rev 541)
@@ -31,16 +31,6 @@
<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" />
1
0
r540 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
22 Jan '11
Author: chatellier
Date: 2011-01-22 19:30:18 +0000 (Sat, 22 Jan 2011)
New Revision: 540
Log:
Fix comment
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2011-01-22 19:26:24 UTC (rev 539)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2011-01-22 19:30:18 UTC (rev 540)
@@ -105,7 +105,7 @@
/**
* Return l'intance de la table qui est selectionnée.
*
- * Les 4 table sont dupliquées juste pour concerver l'etat des colonnes.
+ * Les 4 tables sont dupliquées juste pour conserver l'etat des colonnes.
*
* @param view view
* @return la table affichée (suivante la categorie)
1
0
r539 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
22 Jan '11
Author: chatellier
Date: 2011-01-22 19:26:24 +0000 (Sat, 22 Jan 2011)
New Revision: 539
Log:
Remove super()
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java 2011-01-22 19:25:25 UTC (rev 538)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java 2011-01-22 19:26:24 UTC (rev 539)
@@ -3,7 +3,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ * 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 General Public License as
@@ -64,7 +64,6 @@
protected Project project;
public SelectionsListMenuItem(CoserFrame view) {
- super();
this.view = view;
updateMenuContent();
}
1
0
r538 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
22 Jan '11
Author: chatellier
Date: 2011-01-22 19:25:25 +0000 (Sat, 22 Jan 2011)
New Revision: 538
Log:
Fix potential memory leak, but still present :(
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2011-01-22 18:59:25 UTC (rev 537)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2011-01-22 19:25:25 UTC (rev 538)
@@ -238,6 +238,7 @@
*/
public void closeProject() {
view.setProject(null);
+ view.removeContextValue(Project.class);
view.setTitle(_("coser.ui.mainview.titleempty"));
showHomeView();
}
1
0
r537 - in trunk: . coser-business coser-ui coser-web
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
by chatellier@users.labs.libre-entreprise.org 22 Jan '11
22 Jan '11
Author: chatellier
Date: 2011-01-22 18:59:25 +0000 (Sat, 22 Jan 2011)
New Revision: 537
Log:
Update project version
Modified:
trunk/coser-business/pom.xml
trunk/coser-ui/pom.xml
trunk/coser-web/pom.xml
trunk/pom.xml
Modified: trunk/coser-business/pom.xml
===================================================================
--- trunk/coser-business/pom.xml 2011-01-21 16:07:02 UTC (rev 536)
+++ trunk/coser-business/pom.xml 2011-01-22 18:59:25 UTC (rev 537)
@@ -7,7 +7,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>1.0.0-beta1-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/coser-ui/pom.xml
===================================================================
--- trunk/coser-ui/pom.xml 2011-01-21 16:07:02 UTC (rev 536)
+++ trunk/coser-ui/pom.xml 2011-01-22 18:59:25 UTC (rev 537)
@@ -7,7 +7,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>1.0.0-beta1-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/coser-web/pom.xml
===================================================================
--- trunk/coser-web/pom.xml 2011-01-21 16:07:02 UTC (rev 536)
+++ trunk/coser-web/pom.xml 2011-01-22 18:59:25 UTC (rev 537)
@@ -7,7 +7,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>1.0.0-beta1-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.coser</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-01-21 16:07:02 UTC (rev 536)
+++ trunk/pom.xml 2011-01-22 18:59:25 UTC (rev 537)
@@ -11,7 +11,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>coser</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>1.0.0-beta1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
1
0
r536 - in trunk: coser-business/src/main/java/fr/ifremer/coser/bean coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/test/java/fr/ifremer/coser/services coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1 coser-business/src/test/resources/web coser-ui/src/main/java/fr/ifremer/coser/ui/result coser-ui/src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 21 Jan '11
by chatellier@users.labs.libre-entreprise.org 21 Jan '11
21 Jan '11
Author: chatellier
Date: 2011-01-21 16:07:02 +0000 (Fri, 21 Jan 2011)
New Revision: 536
Log:
Refactoring publish > publiable.
Prise en compte de l'upload/export avec ou sans donn?\195?\169es de base.
Prise en compte des resultats de type indicateurs.
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
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/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties
trunk/coser-business/src/test/resources/web/upload2.zip
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ExportUploadDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxRenderer.java
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -64,11 +64,14 @@
/** Utilisé seulement pour la validation (sinon, non valorisé). */
protected String mapsPath;
- /** Result selected for web publication. */
- protected boolean publishResult;
+ /** Result publiable. */
+ protected boolean publiableResult;
+ /** Result flaged as indicators result. */
+ protected boolean indicatorsResult;
+
/** Result flaged as maps result. */
- protected boolean mapsReferenceResult;
+ protected boolean mapsResult;
/** Data download allowed. */
protected boolean dataAllowed;
@@ -161,26 +164,36 @@
return mapsPath;
}
- public void setPublishResult(boolean publishResult) {
- boolean oldValue = this.publishResult;
- this.publishResult = publishResult;
- getPropertyChangeSupport().firePropertyChange("publishResult", oldValue, publishResult);
+ public void setPubliableResult(boolean publiableResult) {
+ boolean oldValue = this.publiableResult;
+ this.publiableResult = publiableResult;
+ getPropertyChangeSupport().firePropertyChange("publiableResult", oldValue, publiableResult);
}
- public boolean isPublishResult() {
- return publishResult;
+ public boolean isPubliableResult() {
+ return publiableResult;
}
- public boolean isMapsReferenceResult() {
- return mapsReferenceResult;
+ public boolean isIndicatorsResult() {
+ return indicatorsResult;
}
- public void setMapsReferenceResult(boolean mapsReferenceResult) {
- boolean oldValue = this.mapsReferenceResult;
- this.mapsReferenceResult = mapsReferenceResult;
- getPropertyChangeSupport().firePropertyChange("mapsReferenceResult", oldValue, mapsReferenceResult);
+ public void setIndicatorsResult(boolean indicatorsResult) {
+ boolean oldValue = this.indicatorsResult;
+ this.indicatorsResult = indicatorsResult;
+ getPropertyChangeSupport().firePropertyChange("indicatorsResult", oldValue, indicatorsResult);
}
+ public boolean isMapsResult() {
+ return mapsResult;
+ }
+
+ public void setMapsResult(boolean mapsResult) {
+ boolean oldValue = this.mapsResult;
+ this.mapsResult = mapsResult;
+ getPropertyChangeSupport().firePropertyChange("mapsResult", oldValue, mapsResult);
+ }
+
public boolean isDataAllowed() {
return dataAllowed;
}
@@ -208,9 +221,10 @@
if (getEstPopIndName() != null) {
props.setProperty("result.estPopIndName", getEstPopIndName());
}
- props.setProperty("result.publishResult", String.valueOf(isPublishResult()));
+ props.setProperty("result.publiableResult", String.valueOf(isPubliableResult()));
+ props.setProperty("result.indicatorsResult", String.valueOf(isIndicatorsResult()));
+ props.setProperty("result.mapsResult", String.valueOf(isMapsResult()));
props.setProperty("result.dataAllowed", String.valueOf(isDataAllowed()));
- props.setProperty("result.mapsReferenceResult", String.valueOf(isMapsReferenceResult()));
return props;
}
@@ -231,14 +245,17 @@
if (props.containsKey("result.estPopIndName")) {
setEstPopIndName(props.getProperty("result.estPopIndName"));
}
- if (props.containsKey("result.publishResult")) {
- setPublishResult(Boolean.parseBoolean(props.getProperty("result.publishResult")));
+ if (props.containsKey("result.publiableResult")) {
+ setPubliableResult(Boolean.parseBoolean(props.getProperty("result.publiableResult")));
}
if (props.containsKey("result.dataAllowed")) {
setDataAllowed(Boolean.parseBoolean(props.getProperty("result.dataAllowed")));
}
- if (props.containsKey("result.mapsReferenceResult")) {
- setMapsReferenceResult(Boolean.parseBoolean(props.getProperty("result.mapsReferenceResult")));
+ if (props.containsKey("result.indicatorsResult")) {
+ setIndicatorsResult(Boolean.parseBoolean(props.getProperty("result.indicatorsResult")));
}
+ if (props.containsKey("result.mapsResult")) {
+ setMapsResult(Boolean.parseBoolean(props.getProperty("result.mapsResult")));
+ }
}
}
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-21 16:05:47 UTC (rev 535)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -107,7 +107,7 @@
protected CoserBusinessConfig config;
protected ImportService importService;
-
+
protected CommandService commandService;
public ProjectService(CoserBusinessConfig config) {
@@ -2742,23 +2742,6 @@
}
/**
- * Look for project survey name in container data.
- *
- * @param container data container
- * @return survey name
- */
- public String getProjectSurveyName(AbstractDataContainer container) {
- String result = null;
-
- Iterator<String[]> itCatchData = container.getCatch().iterator(true);
- while (StringUtils.isEmpty(result) && itCatchData.hasNext()) {
- result = itCatchData.next()[Catch.INDEX_SURVEY];
- }
-
- return result;
- }
-
- /**
* Look for project survey name in rsufi result.
* Read estcomind file to known that.
* Used in webservice to know map file names.
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-21 16:05:47 UTC (rev 535)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -96,7 +96,8 @@
import freemarker.template.TemplateException;
/**
- * Service specifique à l'interface web de visualisation.
+ * Service specifique à l'interface web de visualisation et à la partie UI
+ * qui sert a envouer les resultats vers l'interface web.
*
* Ce service, contrairement aux autres a un état, les indicateurs et zones
* chargées persistent après chargement, car elle ne peuvent pas changer
@@ -104,7 +105,8 @@
*
* Il faut garder à l'esprit que les projets n'ont pas forcement
* de resultat, donc le chargement du projet est possible, mais
- * pas les données de controle et les données de selection.
+ * pas les données de controle et les données de selection (dont plutot
+ * travailler sur les fichiers estcomind/estpopind que sur les 4 tables).
*
* @author chatellier
* @version $Revision$
@@ -313,7 +315,7 @@
}
if (onlyPubliableResult) {
- result &= rsufiResult.isPublishResult();
+ result &= rsufiResult.isPubliableResult();
}
return result;
@@ -324,11 +326,11 @@
*
* @param selectedResults selected result paths
* @param extractDirectory extract directory (can be null)
- * @param exportWithData include csv data during export
+ * @param publishDataResults result paths flaged with results export
* @return extracted file (no automatically deleted)
* @throws CoserBusinessException
*/
- public File performResultExtract(Collection<RSufiResultPath> selectedResults, File extractDirectory, boolean exportWithData) throws CoserBusinessException {
+ public File performResultExtract(Collection<RSufiResultPath> selectedResults, Collection<RSufiResultPath> publishDataResults, File extractDirectory) throws CoserBusinessException {
File prepareZip = null;
try {
prepareZip = File.createTempFile("coserextract-", ".zip", extractDirectory);
@@ -341,7 +343,7 @@
project = projectService.openProject(project.getName());
OneResultFileFilter oneRFF = new OneResultFileFilter(config,
- project, path.getSelection(), path.getRsufiResult(), exportWithData);
+ project, path.getSelection(), path.getRsufiResult(), publishDataResults.contains(path));
mFileFilters.add(oneRFF);
}
@@ -364,11 +366,12 @@
* Upload user selected result to coser web front-end using common http
* client.
*
- * TODO remove les 3 listes s'il y a mieux.
+ * TODO remove les 4 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 indicatorsResults results selected as indicator results
+ * @param mapResults results selected as map result
+ * @param publishDataResults results selected as results published with data
* @param login remote admin login
* @param password remote admin password
* @param progress progress monitor
@@ -376,8 +379,9 @@
* @throws CoserBusinessException
*/
public String performResultUpload(Collection<RSufiResultPath> selectedResults,
- Collection<RSufiResultPath> mapResults, Collection<RSufiResultPath> publishDataResults,
- String login, String password, ProgressMonitor progress) throws CoserBusinessException {
+ Collection<RSufiResultPath> indicatorsResults, Collection<RSufiResultPath> mapResults,
+ Collection<RSufiResultPath> publishDataResults, String login,
+ String password, ProgressMonitor progress) throws CoserBusinessException {
String uploadStatus = null;
@@ -387,7 +391,7 @@
progress.setCurrent(0);
progress.setText(_("coser.business.uploadresult.modifyResultOptions"));
- modifyRSufiResults(selectedResults, mapResults, publishDataResults);
+ modifyRSufiResults(selectedResults, indicatorsResults, mapResults, publishDataResults);
progress.setText(_("coser.business.uploadresult.checkcollision"));
checkDataCollision(selectedResults);
@@ -395,7 +399,7 @@
progress.setText(_("coser.business.uploadresult.preparezip"));
// default extract to temp directory with data sources
- File prepareZip = performResultExtract(selectedResults, null, true);
+ File prepareZip = performResultExtract(selectedResults, publishDataResults, null);
progress.setText(_("coser.business.uploadresult.sendzip"));
progress.setTotal((int)prepareZip.length());
@@ -445,11 +449,13 @@
* data sources result).
*
* @param selectedResults selected result (collection of project/selection/rsufiresult)
+ * @param indicatorsResults results selected as indicator results
* @param mapResults map results
* @param publishDataResults publish data results
* @throws CoserBusinessException
*/
- protected void modifyRSufiResults(Collection<RSufiResultPath> selectedResults, Collection<RSufiResultPath> mapResults,
+ protected void modifyRSufiResults(Collection<RSufiResultPath> selectedResults,
+ Collection<RSufiResultPath> indicatorsResults, Collection<RSufiResultPath> mapResults,
Collection<RSufiResultPath> publishDataResults) throws CoserBusinessException {
// TODO echatellier 20110117 revoir ce code
@@ -460,14 +466,21 @@
// reset type map and data source for all
for (RSufiResultPath selectedResult : selectedResults) {
RSufiResult rsufiResult = selectedResult.getRsufiResult();
- rsufiResult.setMapsReferenceResult(false);
+ rsufiResult.setIndicatorsResult(false);
+ rsufiResult.setMapsResult(false);
rsufiResult.setDataAllowed(false);
}
// set map type
+ for (RSufiResultPath indicatorsResult : indicatorsResults) {
+ RSufiResult rsufiResult = indicatorsResult.getRsufiResult();
+ rsufiResult.setIndicatorsResult(true);
+ }
+
+ // set map type
for (RSufiResultPath mapResult : mapResults) {
RSufiResult rsufiResult = mapResult.getRsufiResult();
- rsufiResult.setMapsReferenceResult(true);
+ rsufiResult.setMapsResult(true);
}
// set data type
@@ -487,7 +500,7 @@
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);
}
}
@@ -509,7 +522,7 @@
RSufiResult rsufiResult = selectedResult.getRsufiResult();
// on creer une clé composé pour l'id du resultat
- String resultZoneTypeId = rsufiResult.getZone() + String.valueOf(rsufiResult.isMapsReferenceResult());
+ String resultZoneTypeId = rsufiResult.getZone() + String.valueOf(rsufiResult.isMapsResult());
if (resultZoneTypeIds.contains(resultZoneTypeId)) {
throw new CoserBusinessException(_("coser.business.resultupload.duplicatedresult",
project.getName(), selection.getName(), rsufiResult.getName(), rsufiResult.getZone()));
@@ -1132,7 +1145,7 @@
RSufiResult rsufiResult = projectService.getRSufiResult(resultFile);
// extraction des especes pour le résultat demandé
- if (rsufiResult.getZone() != null && rsufiResult.isMapsReferenceResult()) {
+ if (rsufiResult.getZone() != null && rsufiResult.isMapsResult()) {
// test parmis toutes les zones disponible
// si le resultat appartient a une zone
@@ -1530,7 +1543,7 @@
RSufiResult rsufiResult = projectService.getRSufiResult(resultFile);
// extraction des especes pour le résultat demandé
- if (rsufiResult.getZone() != null && rsufiResult.isMapsReferenceResult()) {
+ if (rsufiResult.getZone() != null && rsufiResult.isMapsResult()) {
// test parmis toutes les zones disponible
// si le resultat appartient a une zone
@@ -1665,9 +1678,12 @@
// load selection data (to do data export rsufi)
Selection selection = project.getSelections().get(selectionFile.getName());
+
+ // be sure that data are available for this project
+ // or it will fail
projectService.loadSelectionData(projectsDirectory,project, selection);
- result = generateSourceZip(project, selection);
+ result = generateSourceZip(project, selection, resultFile, rsufiResult);
}
}
}
@@ -1685,12 +1701,16 @@
/**
* Generate zip for selection.
*
+ * Be sure that data are available for this project.
+ *
* @param project project
* @param selection selection with loaded data
+ * @param resultDirectory rsufi result directory
+ * @param rSufiResult rsufi result
* @return generated zip file (auto delete when jvm shutdown)
* @throws CoserBusinessException
*/
- protected File generateSourceZip(Project project, Selection selection) throws CoserBusinessException {
+ protected File generateSourceZip(Project project, Selection selection, File resultDirectory, RSufiResult rSufiResult) throws CoserBusinessException {
File resultZip = null;
@@ -1702,7 +1722,7 @@
File archiveDir = projectService.extractRSUfiData(project, selection, tempDir);
// add decharge file
- File dechargePDF = generateDechargePDF(selection);
+ File dechargePDF = generateDechargePDF(resultDirectory, rSufiResult);
FileUtils.copyFile(dechargePDF, new File(archiveDir, "DechargeDonnees.pdf"));
// make zip
@@ -1722,11 +1742,12 @@
/**
* Genere le PDF dynamique de decharge à partir du template freemarker.
*
- * @param selection selection with loaded data
+ * @param resultDirectory rsufi result directory
+ * @param rSufiResult rsufi result
* @return le fichier généré
* @throws CoserBusinessException
*/
- protected File generateDechargePDF(Selection selection) throws CoserBusinessException {
+ protected File generateDechargePDF(File resultDirectory, RSufiResult rSufiResult) throws CoserBusinessException {
File result = null;
@@ -1734,7 +1755,7 @@
// get some info to put into pdf
Date updateDate = getLastDataUpdateDate();
- String surveyName = projectService.getProjectSurveyName(selection);
+ String surveyName = projectService.getProjectSurveyName(resultDirectory, rSufiResult);
// render freemarker template
Template mapTemplate = freemarkerConfiguration.getTemplate("decharge.ftl");
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -127,7 +127,7 @@
RSufiResult rSufiResult = selection.getRsufiResults().get(0);
Assert.assertEquals("testresult1", rSufiResult.getName());
Assert.assertEquals("myzone", rSufiResult.getZone());
- Assert.assertTrue(rSufiResult.isPublishResult());
+ Assert.assertTrue(rSufiResult.isPubliableResult());
// non validé
Project projectNotValidated = openTestProject(projectService, "project2");
Modified: trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties
===================================================================
--- trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties 2011-01-21 16:07:02 UTC (rev 536)
@@ -1,6 +1,29 @@
-#Mon Jan 03 16:12:49 CET 2011
+###
+# #%L
+# Coser :: Business
+#
+# $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 Lesser 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 Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
result.rsufiversion=1.2.3
result.zone=myzone
result.estPopIndName=EstPopInd_test.txt
result.estComIndName=EstComInd_test.txt
-result.publishResult=true
\ No newline at end of file
+result.publiableResult=true
\ No newline at end of file
Modified: trunk/coser-business/src/test/resources/web/upload2.zip
===================================================================
(Binary files differ)
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ExportUploadDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ExportUploadDialog.jaxx 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ExportUploadDialog.jaxx 2011-01-21 16:07:02 UTC (rev 536)
@@ -42,14 +42,6 @@
</cell>
</row>
<row>
- <cell anchor="east">
- <JCheckBox id="sourceDataExport" selected="true" />
- </cell>
- <cell columns="2" anchor="west">
- <JLabel text="coser.ui.uploadresult.extractWithData" />
- </cell>
- </row>
- <row>
<cell columns="3" anchor="east">
<JButton text="coser.ui.uploadresult.extract"
onActionPerformed="getHandler().performExtractResult(this)" />
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-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -75,7 +75,7 @@
// initialise les données avec les filtres par default
updateAvailableResultsFilter(view);
- view.getSelectedResultTableModel().setResultPath(new ArrayList<RSufiResultPath>());
+ view.getSelectedResultTableModel().setResultPaths(new ArrayList<RSufiResultPath>());
}
@@ -97,7 +97,7 @@
try {
List<RSufiResultPath> results = webService.findAllProjectWithResult(beginDate, endDate, onlyPubliable);
- view.getAvailableResultTableModel().setResultPath(results);
+ view.getAvailableResultTableModel().setResultPaths(results);
} catch (CoserBusinessException ex) {
throw new CoserException("Can't get results", ex);
}
@@ -111,19 +111,23 @@
public void addAvailableResult(SelectUploadResultView view) {
// get new result to add
- List<RSufiResultPath> currentResult = view.getSelectedResultTableModel().getResultPath();
+ List<RSufiResultPath> currentResult = view.getSelectedResultTableModel().getResultPaths();
int[] selectedAvailableRows = view.getAvailableResultTable().getSelectedRows();
for (int selectedAvailableRow : selectedAvailableRows) {
- RSufiResultPath resultData = view.getAvailableResultTableModel().getResultPath().get(selectedAvailableRow);
+ RSufiResultPath resultData = view.getAvailableResultTableModel().getResultPaths().get(selectedAvailableRow);
if (!currentResult.contains(resultData)) {
currentResult.add(resultData);
+
+ // indicator results are auto selected
+ // can be done only here
+ view.getSelectedResultTableModel().getIndicatorResults().add(resultData);
}
}
// les collisions ne peuvent pas être détecté a ce moment.
// seulement lors du clic sur le bouton export/upload
- view.getSelectedResultTableModel().setResultPath(currentResult);
+ view.getSelectedResultTableModel().setResultPaths(currentResult);
}
/**
@@ -132,14 +136,14 @@
* @param view view
*/
public void removeSelectedResult(SelectUploadResultView view) {
- List<RSufiResultPath> currentResult = view.getSelectedResultTableModel().getResultPath();
+ List<RSufiResultPath> currentResult = view.getSelectedResultTableModel().getResultPaths();
int[] selectedSelectedRows = view.getSelectedResultTable().getSelectedRows();
// need to remove reverse order
for (int index = selectedSelectedRows.length - 1 ; index >= 0 ; --index) {
int selectedSelectedRow = selectedSelectedRows[index];
currentResult.remove(selectedSelectedRow);
}
- view.getSelectedResultTableModel().setResultPath(currentResult);
+ view.getSelectedResultTableModel().setResultPaths(currentResult);
}
/**
@@ -155,10 +159,11 @@
// get result selected by user
SelectUploadResultView parentView = view.getContextValue(SelectUploadResultView.class, JAXXUtil.PARENT);
- final Collection<RSufiResultPath> selectedResult = parentView.getSelectedResultTableModel().getResultPath();
- final Collection<RSufiResultPath> mapResult = parentView.getSelectedResultTableModel().getMapResult();
- final Collection<RSufiResultPath> publishDataResult = parentView.getSelectedResultTableModel().getPublishDataResult();
- if (CollectionUtils.isNotEmpty(selectedResult)) {
+ final Collection<RSufiResultPath> selectedResults = parentView.getSelectedResultTableModel().getResultPaths();
+ final Collection<RSufiResultPath> indicatorResults = parentView.getSelectedResultTableModel().getResultPaths();
+ final Collection<RSufiResultPath> mapResults = parentView.getSelectedResultTableModel().getMapResults();
+ final Collection<RSufiResultPath> publishDataResults = parentView.getSelectedResultTableModel().getPublishDataResults();
+ if (CollectionUtils.isNotEmpty(selectedResults)) {
SwingWorker<String, Void> task = new SwingWorker<String, Void>() {
@Override
@@ -167,7 +172,7 @@
// get progress bar
CoserProgressBar progressBar = view.getUploadProgressBar();
WebService webService = view.getContextValue(WebService.class);
- String status = webService.performResultUpload(selectedResult, mapResult, publishDataResult, login, password, progressBar);
+ String status = webService.performResultUpload(selectedResults, indicatorResults, mapResults, publishDataResults, login, password, progressBar);
return status;
}
catch (CoserBusinessException ex) {
@@ -206,26 +211,23 @@
* @param view view
*/
public void performExtractResult(ExportUploadDialog view) {
-
+
// get extract directory
String extractPath = view.getExtractToTextField().getText();
File extractDirectory = new File(extractPath);
-
- // get source data option
- boolean withData = view.getSourceDataExport().isSelected();
SelectUploadResultView parentView = view.getContextValue(SelectUploadResultView.class, JAXXUtil.PARENT);
- Collection<RSufiResultPath> selectedResult = parentView.getSelectedResultTableModel().getResultPath();
+ Collection<RSufiResultPath> selectedResult = parentView.getSelectedResultTableModel().getResultPaths();
+ Collection<RSufiResultPath> publishDataResults = parentView.getSelectedResultTableModel().getPublishDataResults();
WebService webService = view.getContextValue(WebService.class);
try {
- webService.performResultExtract(selectedResult, extractDirectory, withData);
+ webService.performResultExtract(selectedResult, publishDataResults, extractDirectory);
JOptionPane.showMessageDialog(view, _("coser.ui.uploadresult.resultsextracted"),
_("coser.ui.uploadresult.title"), JOptionPane.INFORMATION_MESSAGE);
}
catch (CoserBusinessException ex) {
throw new CoserException("Can't upload results", ex);
}
-
}
/**
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -36,8 +36,8 @@
import fr.ifremer.coser.bean.RSufiResultPath;
/**
- * Model represantant la liste de tous les resultats rsufi present
- * dans le dossier de stockage de coser, tous projets confondu.
+ * Modele respresant une liste de resultat avec details sur les resulats
+ * affichés et options de selection.
*
* @author chatellier
* @version $Revision$
@@ -51,48 +51,60 @@
private static final long serialVersionUID = 6404018386062830677L;
/** Les données de la table. */
- protected List<RSufiResultPath> resultPath;
+ protected List<RSufiResultPath> resultPaths;
+ /** Les résultats marqués comme etant des données d'indicateurs. */
+ protected Set<RSufiResultPath> indicatorResults;
+
/** Les résultats marqué comme étant des données de map. */
- protected Set<RSufiResultPath> mapResult;
+ protected Set<RSufiResultPath> mapResults;
/** Les résultat dont la publication des données est autorisée. */
- protected Set<RSufiResultPath> publishDataResult;
+ protected Set<RSufiResultPath> publishDataResults;
/** Selected table tablemodel (do not show all columns). */
protected boolean selected;
public RsufiResultTableModel(boolean selected) {
this.selected = selected;
+
+ // les selections ne sont jamais supprimé
+ // mais vu l'equivalence equals/hascode
+ // ca ne doit pas poser de problemes
+ indicatorResults = new HashSet<RSufiResultPath>();
+ mapResults = new HashSet<RSufiResultPath>();
+ publishDataResults = new HashSet<RSufiResultPath>();
}
- public void setResultPath(List<RSufiResultPath> resultPath) {
- this.resultPath = resultPath;
- mapResult = new HashSet<RSufiResultPath>();
- publishDataResult = new HashSet<RSufiResultPath>();
+ public void setResultPaths(List<RSufiResultPath> resultPaths) {
+ this.resultPaths = resultPaths;
fireTableDataChanged();
}
- public List<RSufiResultPath> getResultPath() {
- return resultPath;
+ public List<RSufiResultPath> getResultPaths() {
+ return resultPaths;
}
- public Set<RSufiResultPath> getMapResult() {
- return mapResult;
+ public Set<RSufiResultPath> getIndicatorResults() {
+ return indicatorResults;
}
- public Set<RSufiResultPath> getPublishDataResult() {
- return publishDataResult;
+ public Set<RSufiResultPath> getMapResults() {
+ return mapResults;
}
+ public Set<RSufiResultPath> getPublishDataResults() {
+ return publishDataResults;
+ }
+
/*
* @see javax.swing.table.TableModel#getRowCount()
*/
@Override
public int getRowCount() {
int result = 0;
- if (resultPath != null) {
- result = resultPath.size();
+ if (resultPaths != null) {
+ result = resultPaths.size();
}
return result;
}
@@ -111,9 +123,12 @@
result = _("coser.ui.uploadresult.zone");
break;
case 3:
+ result = _("coser.ui.uploadresult.indicatorResult");
+ break;
+ case 4:
result = _("coser.ui.uploadresult.mapResult");
break;
- case 4:
+ case 5:
result = _("coser.ui.uploadresult.publishData");
break;
}
@@ -139,6 +154,9 @@
case 4:
result = Boolean.class;
break;
+ case 5:
+ result = Boolean.class;
+ break;
}
return result;
}
@@ -150,7 +168,7 @@
public int getColumnCount() {
int result = 3;
if (selected) {
- result = 5;
+ result = 6;
}
return result;
}
@@ -163,7 +181,7 @@
Object result = null;
- RSufiResultPath data = resultPath.get(rowIndex);
+ RSufiResultPath data = resultPaths.get(rowIndex);
RSufiResult rsufiResult = data.getRsufiResult();
switch (columnIndex) {
case 0:
@@ -176,15 +194,14 @@
result = rsufiResult.getZone();
break;
case 3:
- // c'est pas tres safe tu les hashcode des tableaux
- // mais bon...
- result = mapResult.contains(data);
+ result = indicatorResults.contains(data);
break;
case 4:
- // c'est pas tres safe tu les hashcode des tableaux
- // mais bon...
- result = publishDataResult.contains(data);
+ result = mapResults.contains(data);
break;
+ case 5:
+ result = publishDataResults.contains(data);
+ break;
}
return result;
@@ -198,26 +215,36 @@
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- RSufiResultPath data = resultPath.get(rowIndex);
+ RSufiResultPath data = resultPaths.get(rowIndex);
if (columnIndex == 3) {
Boolean bValue = (Boolean)aValue;
if (bValue.booleanValue()) {
- mapResult.add(data);
+ indicatorResults.add(data);
}
else {
- mapResult.remove(data);
+ indicatorResults.remove(data);
}
}
else if (columnIndex == 4) {
Boolean bValue = (Boolean)aValue;
if (bValue.booleanValue()) {
- publishDataResult.add(data);
+ mapResults.add(data);
}
else {
- publishDataResult.remove(data);
+ mapResults.remove(data);
}
}
+
+ else if (columnIndex == 5) {
+ Boolean bValue = (Boolean)aValue;
+ if (bValue.booleanValue()) {
+ publishDataResults.add(data);
+ }
+ else {
+ publishDataResults.remove(data);
+ }
+ }
}
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2011-01-21 16:07:02 UTC (rev 536)
@@ -128,11 +128,11 @@
</row>
<row>
<cell anchor="west">
- <JLabel text="coser.ui.result.publishResult" />
+ <JLabel text="coser.ui.result.publiableResult" />
</cell>
<cell fill="horizontal" columns="2">
- <JCheckBox id="publishResultCheckBox"
- onActionPerformed="getRsufiResult().setPublishResult(publishResultCheckBox.isSelected())"/>
+ <JCheckBox id="publiableResultCheckBox"
+ onActionPerformed="getRsufiResult().setPubliableResult(publiableResultCheckBox.isSelected())"/>
</cell>
</row>
<row>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx 2011-01-21 16:07:02 UTC (rev 536)
@@ -70,11 +70,11 @@
</row>
<row>
<cell anchor="west">
- <JLabel text="coser.ui.result.publishResult" />
+ <JLabel text="coser.ui.result.publiableResult" />
</cell>
<cell fill="horizontal">
- <JCheckBox id="publishResultCheckBox" selected="{getRsufiResult().isPublishResult()}"
- onActionPerformed="getRsufiResult().setPublishResult(publishResultCheckBox.isSelected())"/>
+ <JCheckBox id="publiableResultCheckBox" selected="{getRsufiResult().isPubliableResult()}"
+ onActionPerformed="getRsufiResult().setPubliableResult(publiableResultCheckBox.isSelected())"/>
</cell>
</row>
<row>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -1,25 +1,23 @@
/*
* #%L
- *
- *
* $Id$
* $HeadURL$
* %%
* Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
+ * it under the terms of the GNU 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 Lesser Public License for more details.
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Lesser Public
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxRenderer.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxRenderer.java 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxRenderer.java 2011-01-21 16:07:02 UTC (rev 536)
@@ -1,25 +1,23 @@
/*
* #%L
- *
- *
* $Id$
* $HeadURL$
* %%
* Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
+ * it under the terms of the GNU 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 Lesser Public License for more details.
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Lesser Public
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2011-01-21 16:07:02 UTC (rev 536)
@@ -139,7 +139,7 @@
coser.ui.result.mapsDirectory=Maps directory \:
coser.ui.result.newResult=New Result
coser.ui.result.otherDataFile=Other files \:
-coser.ui.result.publishResult=Publiable \:
+coser.ui.result.publiableResult=Publiable \:
coser.ui.result.requiredestComIndPath=ESTCOMind file is required
coser.ui.result.requiredestPopIndPath=ESTPOPind file is required
coser.ui.result.requiredname=Result name is required
@@ -228,10 +228,10 @@
coser.ui.uploadresult.extract=Extract
coser.ui.uploadresult.extractChoice=Extract to directory
coser.ui.uploadresult.extractTo=Extract directory \:
-coser.ui.uploadresult.extractWithData=Extract results with sources data
coser.ui.uploadresult.filter.beginDate=Begin date \:
coser.ui.uploadresult.filter.endDate=End date \:
coser.ui.uploadresult.filter.publiableResults=Only publiables results
+coser.ui.uploadresult.indicatorResult=Indicator result
coser.ui.uploadresult.mapResult=Map result
coser.ui.uploadresult.path=Result path
coser.ui.uploadresult.publishData=Allow source data
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2011-01-21 16:05:47 UTC (rev 535)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2011-01-21 16:07:02 UTC (rev 536)
@@ -139,7 +139,7 @@
coser.ui.result.mapsDirectory=R\u00E9pertoire des cartes \:
coser.ui.result.newResult=Nouveau r\u00E9sultat
coser.ui.result.otherDataFile=Autre fichiers \:
-coser.ui.result.publishResult=Publiable \:
+coser.ui.result.publiableResult=Publiable \:
coser.ui.result.requiredestComIndPath=Le fichier ESTCOMind est requis
coser.ui.result.requiredestPopIndPath=Le fichier ESTPOPind est requis
coser.ui.result.requiredname=Le nom du r\u00E9sultat est requis
@@ -228,13 +228,13 @@
coser.ui.uploadresult.extract=Extraire
coser.ui.uploadresult.extractChoice=Extraire vers un dossier
coser.ui.uploadresult.extractTo=Dossier d'extraction \:
-coser.ui.uploadresult.extractWithData=Extraire les r\u00E9sultats avec les donn\u00E9es sources
coser.ui.uploadresult.filter.beginDate=Date de d\u00E9but \:
coser.ui.uploadresult.filter.endDate=Date de fin \:
coser.ui.uploadresult.filter.publiableResults=Seulement les r\u00E9sultats publiables
+coser.ui.uploadresult.indicatorResult=R\u00E9sultat d'indicateurs
coser.ui.uploadresult.mapResult=R\u00E9sultat de cartes
coser.ui.uploadresult.path=Chemin du r\u00E9sultats
-coser.ui.uploadresult.publishData=Autoriser les sources
+coser.ui.uploadresult.publishData=Autoriser les donn\u00E9es de base
coser.ui.uploadresult.removeResults=Supprimer le r\u00E9sultat
coser.ui.uploadresult.resultsextracted=R\u00E9sultats extraits.
coser.ui.uploadresult.resultsuploaded=R\u00E9sultats publi\u00E9s.
1
0
r535 - trunk/coser-web/src/main/webapp/styles
by chatellier@users.labs.libre-entreprise.org 21 Jan '11
by chatellier@users.labs.libre-entreprise.org 21 Jan '11
21 Jan '11
Author: chatellier
Date: 2011-01-21 16:05:47 +0000 (Fri, 21 Jan 2011)
New Revision: 535
Log:
Update header
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-21 14:06:14 UTC (rev 534)
+++ trunk/coser-web/src/main/webapp/styles/coser.css 2011-01-21 16:05:47 UTC (rev 535)
@@ -1,3 +1,26 @@
+/*
+ * #%L
+ * Coser :: Web
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 Ifremer, Codelutin
+ * %%
+ * 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%
+ */
/*reset*/
* {
margin: 0;
1
0
r534 - in trunk: coser-business/src/main/java/fr/ifremer/coser/bean coser-business/src/main/java/fr/ifremer/coser/command coser-business/src/main/java/fr/ifremer/coser/control coser-business/src/main/java/fr/ifremer/coser/data coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/java/fr/ifremer/coser/storage coser-business/src/main/java/fr/ifremer/coser/util coser-business/src/main/java/fr/ifremer/coser/validators coser-ui/src/main/java/fr/ifremer/coser/ui/result co
by chatellier@users.labs.libre-entreprise.org 21 Jan '11
by chatellier@users.labs.libre-entreprise.org 21 Jan '11
21 Jan '11
Author: chatellier
Date: 2011-01-21 14:06:14 +0000 (Fri, 21 Jan 2011)
New Revision: 534
Log:
Refactoring Object[] to RSufiResultPath pour les resultats a uploaded (equals/hashcode).
Modification d'un resultat existant.
Added:
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResultPath.java
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/package-info.java
trunk/coser-business/src/main/java/fr/ifremer/coser/command/package-info.java
trunk/coser-business/src/main/java/fr/ifremer/coser/control/package-info.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/package-info.java
trunk/coser-business/src/main/java/fr/ifremer/coser/storage/package-info.java
trunk/coser-business/src/main/java/fr/ifremer/coser/util/package-info.java
trunk/coser-business/src/main/java/fr/ifremer/coser/validators/package-info.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx
Removed:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTreeModel.java
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/data/package-info.java
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/java/fr/ifremer/coser/util/ProgressMonitor.java
trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultRenderer.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectUploadResultView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResultPath.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResultPath.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResultPath.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,119 @@
+/*
+ * #%L
+ *
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+
+package fr.ifremer.coser.bean;
+
+/**
+ * Object utilitaire represantant un path vers un résultat (projet / selection
+ * / rsufiresult) utilisé par l'interface d'admin et l'upload de resultat
+ * vers l'interface web.
+ *
+ * L'egalité et le hashcode sont basé sur les {@link Project#name},
+ * {@link Selection#name}, et {@link RSufiResult#name}.
+ *
+ * Les attribut sont finaux car le hashcode est basé dessus.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class RSufiResultPath {
+
+ /** Final project. */
+ protected final Project project;
+
+ /** Final selection. */
+ protected final Selection selection;
+
+ /** Final rsufiresult. */
+ protected final RSufiResult rsufiResult;
+
+ /**
+ * Constructor with full path.
+ *
+ * @param project project (can't be null)
+ * @param selection selection (can't be null)
+ * @param rsufiResult rsufiresult (can't be null)
+ */
+ public RSufiResultPath(Project project, Selection selection, RSufiResult rsufiResult) {
+ this.project = project;
+ this.selection = selection;
+ this.rsufiResult = rsufiResult;
+ }
+
+ /**
+ * Get project.
+ *
+ * @return project
+ */
+ public Project getProject() {
+ return project;
+ }
+
+ /**
+ * Get selection.
+ *
+ * @return selection
+ */
+ public Selection getSelection() {
+ return selection;
+ }
+
+ /**
+ * Get result.
+ *
+ * @return result
+ */
+ public RSufiResult getRsufiResult() {
+ return rsufiResult;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 31 + project.getName().hashCode();
+ result = 31 * result + selection.getName().hashCode();
+ result = 31 * result + rsufiResult.getName().hashCode();
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ boolean result = true;
+
+ if (!(obj instanceof RSufiResultPath)) {
+ result = false;
+ }
+ else {
+ RSufiResultPath other = (RSufiResultPath)obj;
+ result &= project.getName().equals(other.project.getName());
+ result &= selection.getName().equals(other.selection.getName());
+ result &= rsufiResult.getName().equals(other.rsufiResult.getName());
+ }
+
+ return result;
+ }
+}
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResultPath.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * Storage stucture classes.
+ */
+package fr.ifremer.coser.bean;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/command/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/command/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/command/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * Control specific classes.
+ */
+package fr.ifremer.coser.command;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/command/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/control/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/control/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/control/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * Command specific classes.
+ */
+package fr.ifremer.coser.control;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/control/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/data/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/data/package-info.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/data/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ * 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 Lesser General Public License as
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-20 10:54:12 UTC (rev 533)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -820,6 +820,7 @@
if (log.isDebugEnabled()) {
log.debug("Saving control properties file : " + propertiesFile);
}
+
} catch (IOException ex) {
throw new CoserBusinessException("Can't save control properties file", ex);
}
@@ -1098,14 +1099,39 @@
}
/**
- * Save rsufi result (only property file).
+ * Save existing rsufi result (just save property file)
*
+ * @param project project
+ * @param selection selection
+ * @param rsufiResult new result to save
+ * @throws CoserBusinessException
+ */
+ public void saveRsufiResults(Project project, Selection selection, RSufiResult rsufiResult) throws CoserBusinessException {
+
+ File projectsDirectory = config.getProjectsDirectory();
+ File projectDirectory = new File(projectsDirectory, 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 rsufiResultDirectory = new File(resultsDirectory, rsufiResult.getName());
+
+ // property file
+ saveRSufiResult(rsufiResultDirectory, rsufiResult);
+
+ List<RSufiResult> results = selection.getRsufiResults();
+ // this way to fire change event (do not remove)
+ selection.setRsufiResults(results);
+ }
+
+ /**
+ * Save rsufi result (only properties 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)
@@ -1113,7 +1139,7 @@
Properties props = rsufiResult.toProperties();
outputStream = new FileOutputStream(propertiesFile);
props.store(outputStream, null);
-
+
if (log.isDebugEnabled()) {
log.debug("Saving result properties file : " + propertiesFile);
}
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-20 10:54:12 UTC (rev 533)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -83,6 +83,7 @@
import fr.ifremer.coser.CoserUtils;
import fr.ifremer.coser.bean.Project;
import fr.ifremer.coser.bean.RSufiResult;
+import fr.ifremer.coser.bean.RSufiResultPath;
import fr.ifremer.coser.bean.Selection;
import fr.ifremer.coser.storage.DataStorage;
import fr.ifremer.coser.storage.MemoryDataStorage;
@@ -237,11 +238,11 @@
* @param endDate end date (can be null)
* @param onlyPubliableResult select only publiable results
*
- * @return results path
+ * @return results paths
* @throws CoserBusinessException
*/
- public List<Object[]> findAllProjectWithResult(Date beginDate, Date endDate, boolean onlyPubliableResult) throws CoserBusinessException {
- List<Object[]> results = new ArrayList<Object[]>();
+ public List<RSufiResultPath> findAllProjectWithResult(Date beginDate, Date endDate, boolean onlyPubliableResult) throws CoserBusinessException {
+ List<RSufiResultPath> results = new ArrayList<RSufiResultPath>();
// loop on projets
File projectsDirectory = config.getProjectsDirectory();
@@ -273,7 +274,7 @@
boolean candidate = isCandidateResult(r, beginDate, endDate, onlyPubliableResult);
if (candidate) {
- Object[] result = new Object[] {p, s, r};
+ RSufiResultPath result = new RSufiResultPath(p, s, r);
results.add(result);
}
}
@@ -327,20 +328,20 @@
* @return extracted file (no automatically deleted)
* @throws CoserBusinessException
*/
- public File performResultExtract(Collection<Object[]> selectedResults, File extractDirectory, boolean exportWithData) throws CoserBusinessException {
+ public File performResultExtract(Collection<RSufiResultPath> selectedResults, File extractDirectory, boolean exportWithData) throws CoserBusinessException {
File prepareZip = null;
try {
prepareZip = File.createTempFile("coserextract-", ".zip", extractDirectory);
// copy selectively all data to target directory
MultipleFileFilter mFileFilters = new MultipleFileFilter();
- for (Object[] path : selectedResults) {
+ for (RSufiResultPath path : selectedResults) {
// load projet, needed to known source data file name
- Project project = (Project)path[0];
+ Project project = path.getProject();
project = projectService.openProject(project.getName());
OneResultFileFilter oneRFF = new OneResultFileFilter(config,
- project, (Selection)path[1], (RSufiResult)path[2], exportWithData);
+ project, path.getSelection(), path.getRsufiResult(), exportWithData);
mFileFilters.add(oneRFF);
}
@@ -374,8 +375,8 @@
* @return upload error status or {@code null} if no error
* @throws CoserBusinessException
*/
- public String performResultUpload(Collection<Object[]> selectedResults,
- Collection<Object[]> mapResults, Collection<Object[]> publishDataResults,
+ public String performResultUpload(Collection<RSufiResultPath> selectedResults,
+ Collection<RSufiResultPath> mapResults, Collection<RSufiResultPath> publishDataResults,
String login, String password, ProgressMonitor progress) throws CoserBusinessException {
String uploadStatus = null;
@@ -448,8 +449,8 @@
* @param publishDataResults publish data results
* @throws CoserBusinessException
*/
- protected void modifyRSufiResults(Collection<Object[]> selectedResults, Collection<Object[]> mapResults,
- Collection<Object[]> publishDataResults) throws CoserBusinessException {
+ protected void modifyRSufiResults(Collection<RSufiResultPath> selectedResults, Collection<RSufiResultPath> mapResults,
+ Collection<RSufiResultPath> publishDataResults) throws CoserBusinessException {
// TODO echatellier 20110117 revoir ce code
@@ -457,29 +458,29 @@
// 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];
+ for (RSufiResultPath selectedResult : selectedResults) {
+ RSufiResult rsufiResult = selectedResult.getRsufiResult();
rsufiResult.setMapsReferenceResult(false);
rsufiResult.setDataAllowed(false);
}
// set map type
- for (Object[] mapResult : mapResults) {
- RSufiResult rsufiResult = (RSufiResult)mapResult[2];
+ for (RSufiResultPath mapResult : mapResults) {
+ RSufiResult rsufiResult = mapResult.getRsufiResult();
rsufiResult.setMapsReferenceResult(true);
}
// set data type
- for (Object[] publishDataResult : publishDataResults) {
- RSufiResult rsufiResult = (RSufiResult)publishDataResult[2];
+ for (RSufiResultPath publishDataResult : publishDataResults) {
+ RSufiResult rsufiResult = publishDataResult.getRsufiResult();
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];
+ for (RSufiResultPath selectedResult : selectedResults) {
+ Project project = selectedResult.getProject();
+ Selection selection = selectedResult.getSelection();
+ RSufiResult rsufiResult = selectedResult.getRsufiResult();
File projectDirectory = new File(config.getProjectsDirectory(), project.getName());
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
@@ -498,14 +499,14 @@
* @param selectedResults result id to check
* @throws CoserBusinessException
*/
- protected void checkDataCollision(Collection<Object[]> selectedResults) throws CoserBusinessException {
+ protected void checkDataCollision(Collection<RSufiResultPath> selectedResults) throws CoserBusinessException {
Collection<String> resultZoneTypeIds = new ArrayList<String>();
- for (Object[] selectedResult : selectedResults) {
- Project project = (Project)selectedResult[0];
- Selection selection = (Selection)selectedResult[1];
- RSufiResult rsufiResult = (RSufiResult)selectedResult[2];
+ for (RSufiResultPath selectedResult : selectedResults) {
+ Project project = selectedResult.getProject();
+ Selection selection = selectedResult.getSelection();
+ RSufiResult rsufiResult = selectedResult.getRsufiResult();
// on creer une clé composé pour l'id du resultat
String resultZoneTypeId = rsufiResult.getZone() + String.valueOf(rsufiResult.isMapsReferenceResult());
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/services/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * Services classes.
+ */
+package fr.ifremer.coser.services;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/services/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/storage/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/storage/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/storage/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * CSV storage classes.
+ */
+package fr.ifremer.coser.storage;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/storage/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressMonitor.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressMonitor.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressMonitor.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ * 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 Lesser General Public License as
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/util/ProgressStream.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ * 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 Lesser General Public License as
@@ -39,12 +39,13 @@
*/
public class ProgressStream extends InputStream {
+ /** Delegate stream/ */
protected InputStream delegateStream;
+ /** Progress monitor notified. */
protected ProgressMonitor delegateProgress;
public ProgressStream(InputStream delegateStream, ProgressMonitor delegateProgress) {
- super();
this.delegateStream = delegateStream;
this.delegateProgress = delegateProgress;
}
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/util/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/util/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/util/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * Utility classes.
+ */
+package fr.ifremer.coser.util;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/util/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/validators/package-info.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/validators/package-info.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/validators/package-info.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,28 @@
+/*
+ * #%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 Lesser 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+/**
+ * Xwork validators.
+ */
+package fr.ifremer.coser.validators;
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/validators/package-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
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-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultHandler.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -43,6 +43,7 @@
import fr.ifremer.coser.CoserBusinessException;
import fr.ifremer.coser.CoserException;
+import fr.ifremer.coser.bean.RSufiResultPath;
import fr.ifremer.coser.services.WebService;
import fr.ifremer.coser.ui.common.CommonHandler;
import fr.ifremer.coser.ui.util.CoserProgressBar;
@@ -74,7 +75,7 @@
// initialise les données avec les filtres par default
updateAvailableResultsFilter(view);
- view.getSelectedResultTableModel().setResultPath(new ArrayList<Object[]>());
+ view.getSelectedResultTableModel().setResultPath(new ArrayList<RSufiResultPath>());
}
@@ -95,7 +96,7 @@
WebService webService = view.getContextValue(WebService.class);
try {
- List<Object[]> results = webService.findAllProjectWithResult(beginDate, endDate, onlyPubliable);
+ List<RSufiResultPath> results = webService.findAllProjectWithResult(beginDate, endDate, onlyPubliable);
view.getAvailableResultTableModel().setResultPath(results);
} catch (CoserBusinessException ex) {
throw new CoserException("Can't get results", ex);
@@ -108,21 +109,20 @@
* @param view view
*/
public void addAvailableResult(SelectUploadResultView view) {
-
+
// get new result to add
- List<Object[]> newResult = new ArrayList<Object[]>();
+ List<RSufiResultPath> currentResult = view.getSelectedResultTableModel().getResultPath();
int[] selectedAvailableRows = view.getAvailableResultTable().getSelectedRows();
for (int selectedAvailableRow : selectedAvailableRows) {
- Object[] resultData = view.getAvailableResultTableModel().getResultPath().get(selectedAvailableRow);
- newResult.add(resultData);
+ RSufiResultPath resultData = view.getAvailableResultTableModel().getResultPath().get(selectedAvailableRow);
+ if (!currentResult.contains(resultData)) {
+ currentResult.add(resultData);
+ }
}
// les collisions ne peuvent pas être détecté a ce moment.
// seulement lors du clic sur le bouton export/upload
- // add new results
- List<Object[]> currentResult = view.getSelectedResultTableModel().getResultPath();
- currentResult.addAll(newResult);
view.getSelectedResultTableModel().setResultPath(currentResult);
}
@@ -132,7 +132,7 @@
* @param view view
*/
public void removeSelectedResult(SelectUploadResultView view) {
- List<Object[]> currentResult = view.getSelectedResultTableModel().getResultPath();
+ List<RSufiResultPath> currentResult = view.getSelectedResultTableModel().getResultPath();
int[] selectedSelectedRows = view.getSelectedResultTable().getSelectedRows();
// need to remove reverse order
for (int index = selectedSelectedRows.length - 1 ; index >= 0 ; --index) {
@@ -155,9 +155,9 @@
// 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();
+ final Collection<RSufiResultPath> selectedResult = parentView.getSelectedResultTableModel().getResultPath();
+ final Collection<RSufiResultPath> mapResult = parentView.getSelectedResultTableModel().getMapResult();
+ final Collection<RSufiResultPath> publishDataResult = parentView.getSelectedResultTableModel().getPublishDataResult();
if (CollectionUtils.isNotEmpty(selectedResult)) {
SwingWorker<String, Void> task = new SwingWorker<String, Void>() {
@@ -215,7 +215,7 @@
boolean withData = view.getSourceDataExport().isSelected();
SelectUploadResultView parentView = view.getContextValue(SelectUploadResultView.class, JAXXUtil.PARENT);
- Collection<Object[]> selectedResult = parentView.getSelectedResultTableModel().getResultPath();
+ Collection<RSufiResultPath> selectedResult = parentView.getSelectedResultTableModel().getResultPath();
WebService webService = view.getContextValue(WebService.class);
try {
webService.performResultExtract(selectedResult, extractDirectory, withData);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -101,7 +101,7 @@
public Object getValueAt(int rowIndex, int columnIndex) {
Object result = null;
- RSufiResult rsufiResult = selection.getRsufiResults().get(rowIndex);
+ RSufiResult rsufiResult = getValue(rowIndex);
switch (columnIndex) {
case 0:
result = rsufiResult.getName();
@@ -120,6 +120,17 @@
return result;
}
+ /**
+ * Get value for wall row.
+ *
+ * @param rowIndex row index
+ * @return rsufi result at row index
+ */
+ public RSufiResult getValue(int rowIndex) {
+ RSufiResult result = selection.getRsufiResults().get(rowIndex);
+ return result;
+ }
+
/*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultRenderer.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultRenderer.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultRenderer.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -28,9 +28,7 @@
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
-import fr.ifremer.coser.bean.Project;
-import fr.ifremer.coser.bean.RSufiResult;
-import fr.ifremer.coser.bean.Selection;
+import fr.ifremer.coser.bean.RSufiResultPath;
/**
* Available and selected result path renderer.
@@ -51,12 +49,11 @@
boolean isSelected, boolean hasFocus, int row, int column) {
Object localValue = value;
- if (value instanceof Object[]) {
- Object[] arrayValue = (Object[])value;
- //localValue = StringUtils.join(arrayValue, '/');
- localValue = ((Project)arrayValue[0]).getName() + "/" +
- ((Selection)arrayValue[1]).getName() + "/" +
- ((RSufiResult)arrayValue[2]).getName();
+ if (value instanceof RSufiResultPath) {
+ RSufiResultPath rsufiResultPath = (RSufiResultPath)value;
+ localValue = rsufiResultPath.getProject().getName() + "/" +
+ rsufiResultPath.getSelection().getName() + "/" +
+ rsufiResultPath.getRsufiResult().getName();
}
return super.getTableCellRendererComponent(table, localValue, isSelected, hasFocus,
row, column);
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java (from rev 532, trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTreeModel.java)
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTableModel.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,223 @@
+/*
+ * #%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 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 General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+package fr.ifremer.coser.ui.result;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.swing.table.AbstractTableModel;
+
+import fr.ifremer.coser.bean.RSufiResult;
+import fr.ifremer.coser.bean.RSufiResultPath;
+
+/**
+ * Model represantant la liste de tous les resultats rsufi present
+ * dans le dossier de stockage de coser, tous projets confondu.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class RsufiResultTableModel extends AbstractTableModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 6404018386062830677L;
+
+ /** Les données de la table. */
+ protected List<RSufiResultPath> resultPath;
+
+ /** Les résultats marqué comme étant des données de map. */
+ protected Set<RSufiResultPath> mapResult;
+
+ /** Les résultat dont la publication des données est autorisée. */
+ protected Set<RSufiResultPath> publishDataResult;
+
+ /** Selected table tablemodel (do not show all columns). */
+ protected boolean selected;
+
+ public RsufiResultTableModel(boolean selected) {
+ this.selected = selected;
+ }
+
+ public void setResultPath(List<RSufiResultPath> resultPath) {
+ this.resultPath = resultPath;
+ mapResult = new HashSet<RSufiResultPath>();
+ publishDataResult = new HashSet<RSufiResultPath>();
+ fireTableDataChanged();
+ }
+
+ public List<RSufiResultPath> getResultPath() {
+ return resultPath;
+ }
+
+ public Set<RSufiResultPath> getMapResult() {
+ return mapResult;
+ }
+
+ public Set<RSufiResultPath> getPublishDataResult() {
+ return publishDataResult;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getRowCount()
+ */
+ @Override
+ public int getRowCount() {
+ int result = 0;
+ if (resultPath != null) {
+ result = resultPath.size();
+ }
+ return result;
+ }
+
+ @Override
+ public String getColumnName(int column) {
+ String result = null;
+ switch(column) {
+ case 0:
+ result = _("coser.ui.uploadresult.creationDate");
+ break;
+ case 1:
+ result = _("coser.ui.uploadresult.path");
+ break;
+ case 2:
+ result = _("coser.ui.uploadresult.zone");
+ break;
+ case 3:
+ result = _("coser.ui.uploadresult.mapResult");
+ break;
+ case 4:
+ result = _("coser.ui.uploadresult.publishData");
+ break;
+ }
+ return result;
+ }
+
+ @Override
+ public Class<?> getColumnClass(int columnIndex) {
+ Class<?> result = null;
+ switch(columnIndex) {
+ case 0:
+ result = Date.class;
+ break;
+ case 1:
+ result = String[].class;
+ break;
+ case 2:
+ result = String.class;
+ break;
+ case 3:
+ result = Boolean.class;
+ break;
+ case 4:
+ result = Boolean.class;
+ break;
+ }
+ return result;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnCount()
+ */
+ @Override
+ public int getColumnCount() {
+ int result = 3;
+ if (selected) {
+ result = 5;
+ }
+ return result;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getValueAt(int, int)
+ */
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+
+ Object result = null;
+
+ RSufiResultPath data = resultPath.get(rowIndex);
+ RSufiResult rsufiResult = data.getRsufiResult();
+ switch (columnIndex) {
+ case 0:
+ result = rsufiResult.getCreationDate();
+ break;
+ case 1:
+ result = data;
+ break;
+ case 2:
+ result = rsufiResult.getZone();
+ break;
+ case 3:
+ // c'est pas tres safe tu les hashcode des tableaux
+ // mais bon...
+ result = mapResult.contains(data);
+ break;
+ case 4:
+ // c'est pas tres safe tu les hashcode des tableaux
+ // mais bon...
+ result = publishDataResult.contains(data);
+ break;
+ }
+
+ return result;
+ }
+
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return columnIndex >= 3;
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+
+ RSufiResultPath data = resultPath.get(rowIndex);
+
+ if (columnIndex == 3) {
+ Boolean bValue = (Boolean)aValue;
+ if (bValue.booleanValue()) {
+ mapResult.add(data);
+ }
+ else {
+ mapResult.remove(data);
+ }
+ }
+
+ else if (columnIndex == 4) {
+ Boolean bValue = (Boolean)aValue;
+ if (bValue.booleanValue()) {
+ publishDataResult.add(data);
+ }
+ else {
+ publishDataResult.remove(data);
+ }
+ }
+ }
+}
Deleted: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTreeModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTreeModel.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/RsufiResultTreeModel.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -1,225 +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 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 General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-package fr.ifremer.coser.ui.result;
-
-import static org.nuiton.i18n.I18n._;
-
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.swing.table.AbstractTableModel;
-
-import fr.ifremer.coser.bean.RSufiResult;
-
-/**
- * Model represantant la liste de tous les resultats rsufi present
- * dans le dossier de stockage de coser, tous projets confondu.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class RsufiResultTreeModel extends AbstractTableModel {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = 6404018386062830677L;
-
- /** Les données de la table. */
- protected List<Object[]> resultPath;
-
- /** Les résultats marqué comme étant des données de map. */
- protected Set<Object[]> mapResult;
-
- /** Les résultat dont la publication des données est autorisée. */
- protected Set<Object[]> publishDataResult;
-
- /** Selected table tablemodel (do not show all columns). */
- protected boolean selected;
-
- public RsufiResultTreeModel(boolean selected) {
- this.selected = selected;
- }
-
- public void setResultPath(List<Object[]> resultPath) {
- this.resultPath = resultPath;
- mapResult = new HashSet<Object[]>();
- publishDataResult = new HashSet<Object[]>();
- fireTableDataChanged();
- }
-
- public List<Object[]> getResultPath() {
- return resultPath;
- }
-
- public Set<Object[]> getMapResult() {
- return mapResult;
- }
-
- public Set<Object[]> getPublishDataResult() {
- return publishDataResult;
- }
-
- /*
- * @see javax.swing.table.TableModel#getRowCount()
- */
- @Override
- public int getRowCount() {
- int result = 0;
- if (resultPath != null) {
- result = resultPath.size();
- }
- return result;
- }
-
- @Override
- public String getColumnName(int column) {
- String result = null;
- switch(column) {
- case 0:
- result = _("coser.ui.uploadresult.creationDate");
- break;
- case 1:
- result = _("coser.ui.uploadresult.path");
- break;
- case 2:
- result = _("coser.ui.uploadresult.zone");
- break;
- case 3:
- result = _("coser.ui.uploadresult.mapResult");
- break;
- case 4:
- result = _("coser.ui.uploadresult.publishData");
- break;
- }
- return result;
- }
-
- @Override
- public Class<?> getColumnClass(int columnIndex) {
- Class<?> result = null;
- switch(columnIndex) {
- case 0:
- result = Date.class;
- break;
- case 1:
- result = String[].class;
- break;
- case 2:
- result = String.class;
- break;
- case 3:
- result = Boolean.class;
- break;
- case 4:
- result = Boolean.class;
- break;
- }
- return result;
- }
-
- /*
- * @see javax.swing.table.TableModel#getColumnCount()
- */
- @Override
- public int getColumnCount() {
- int result = 3;
- if (selected) {
- result = 5;
- }
- return result;
- }
-
- /*
- * @see javax.swing.table.TableModel#getValueAt(int, int)
- */
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
-
- Object result = null;
-
- Object[] data = resultPath.get(rowIndex);
- switch (columnIndex) {
- case 0: {
- RSufiResult rsufiResult = (RSufiResult)data[2];
- result = rsufiResult.getCreationDate();
- break;
- }
- case 1:
- result = data;
- break;
- case 2: {
- RSufiResult rsufiResult = (RSufiResult)data[2];
- result = rsufiResult.getZone();
- break;
- }
- case 3:
- // c'est pas tres safe tu les hashcode des tableaux
- // mais bon...
- result = mapResult.contains(data);
- break;
- case 4:
- // c'est pas tres safe tu les hashcode des tableaux
- // mais bon...
- result = publishDataResult.contains(data);
- break;
- }
-
- return result;
- }
-
- @Override
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return columnIndex >= 3;
- }
-
- @Override
- public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
-
- Object[] data = resultPath.get(rowIndex);
-
- if (columnIndex == 3) {
- Boolean bValue = (Boolean)aValue;
- if (bValue.booleanValue()) {
- mapResult.add(data);
- }
- else {
- mapResult.remove(data);
- }
- }
-
- else if (columnIndex == 4) {
- Boolean bValue = (Boolean)aValue;
- if (bValue.booleanValue()) {
- publishDataResult.add(data);
- }
- else {
- publishDataResult.remove(data);
- }
- }
- }
-}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectUploadResultView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectUploadResultView.jaxx 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectUploadResultView.jaxx 2011-01-21 14:06:14 UTC (rev 534)
@@ -67,7 +67,7 @@
<row>
<cell weightx="1" weighty="1" fill="both">
<JScrollPane>
- <RsufiResultTreeModel id="availableResultTableModel" initializer='new RsufiResultTreeModel(false)' />
+ <RsufiResultTableModel id="availableResultTableModel" initializer='new RsufiResultTableModel(false)' />
<JTable id="availableResultTable" model="{getAvailableResultTableModel()}"/>
<ListSelectionModel javaBean="availableResultTable.getSelectionModel()"
onValueChanged="addResultButton.setEnabled(getAvailableResultTable().getSelectedRow() != -1)" />
@@ -88,7 +88,7 @@
<row>
<cell weightx="1" weighty="1" fill="both">
<JScrollPane>
- <RsufiResultTreeModel id="selectedResultTableModel" initializer='new RsufiResultTreeModel(true)' />
+ <RsufiResultTableModel id="selectedResultTableModel" initializer='new RsufiResultTableModel(true)' />
<JTable id="selectedResultTable" model="{getSelectedResultTableModel()}" />
<ListSelectionModel javaBean="selectedResultTable.getSelectionModel()"
onValueChanged="removeResultButton.setEnabled(getSelectedResultTable().getSelectedRow() != -1)" />
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2011-01-21 14:06:14 UTC (rev 534)
@@ -75,7 +75,8 @@
<JLabel text="coser.ui.result.zone" />
</cell>
<cell fill="horizontal" columns="2">
- <JComboBox id="resultZoneCombo" model="{new ZoneComboBoxModel(this)}"
+ <ZoneComboBoxModel id="resultZoneComboModel" javaBean="new ZoneComboBoxModel(getContextValue(fr.ifremer.coser.services.WebService.class))" />
+ <JComboBox id="resultZoneCombo" model="{getResultZoneComboModel()}"
renderer="{new ZoneComboBoxRenderer()}"
onActionPerformed='getRsufiResult().setZone((String)resultZoneCombo.getSelectedItem())'/>
</cell>
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionEditResultDialog.jaxx 2011-01-21 14:06:14 UTC (rev 534)
@@ -0,0 +1,87 @@
+<!--
+ #%L
+ Coser :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU 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 General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<JDialog title="coser.ui.result.newResult" modal="true">
+ <Table>
+ <fr.ifremer.coser.ui.selection.SelectionHandler id="handler" javaBean="null" />
+
+ <fr.ifremer.coser.bean.RSufiResult id="rsufiResult" javaBean="null" />
+
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.resultName" />
+ </cell>
+ <cell fill="horizontal">
+ <JTextField id="resultNameField" enabled="false" text="{getRsufiResult().getName()}"/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.rsufiVersion" />
+ </cell>
+ <cell fill="horizontal">
+ <JTextField id="resultRsufiVersion" text="{getRsufiResult().getRsufiVersion()}" />
+ <javax.swing.text.Document javaBean="resultRsufiVersion.getDocument()"
+ onInsertUpdate='getRsufiResult().setRsufiVersion(resultRsufiVersion.getText())'
+ onRemoveUpdate='getRsufiResult().setRsufiVersion(resultRsufiVersion.getText())' />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.creationDate" />
+ </cell>
+ <cell fill="horizontal">
+ <JXDatePicker id="resultCreationDate" date="{getRsufiResult().getCreationDate()}"
+ onActionPerformed="getRsufiResult().setCreationDate(resultCreationDate.getDate())"/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.zone" />
+ </cell>
+ <cell fill="horizontal">
+ <ZoneComboBoxModel id="resultZoneComboModel" javaBean="new ZoneComboBoxModel(getContextValue(fr.ifremer.coser.services.WebService.class))"
+ selectedItem="{getRsufiResult().getZone()}"/>
+ <JComboBox id="resultZoneCombo" model="{getResultZoneComboModel()}"
+ renderer="{new ZoneComboBoxRenderer()}"
+ onActionPerformed='getRsufiResult().setZone((String)resultZoneCombo.getSelectedItem())'/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.publishResult" />
+ </cell>
+ <cell fill="horizontal">
+ <JCheckBox id="publishResultCheckBox" selected="{getRsufiResult().isPublishResult()}"
+ onActionPerformed="getRsufiResult().setPublishResult(publishResultCheckBox.isSelected())"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" anchor="east">
+ <JButton id="saveResultButton" text="coser.ui.result.validEditResult"
+ onActionPerformed="getHandler().performEditResult(this)"/>
+ </cell>
+ </row>
+ </Table>
+</JDialog>
\ No newline at end of file
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ZoneComboBoxModel.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -48,14 +48,9 @@
/** serialVersionUID. */
private static final long serialVersionUID = 4452070553401468762L;
- protected SelectionAddResultDialog view;
-
protected DataStorage zonesMap;
- public ZoneComboBoxModel(SelectionAddResultDialog view) {
- this.view = view;
-
- WebService webService = view.getContextValue(WebService.class);
+ public ZoneComboBoxModel(WebService webService) {
try {
zonesMap = webService.getZonesMap();
} catch (CoserBusinessException ex) {
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2011-01-21 14:06:14 UTC (rev 534)
@@ -73,6 +73,7 @@
import fr.ifremer.coser.services.PublicationService;
import fr.ifremer.coser.ui.common.DataHandler;
import fr.ifremer.coser.ui.result.SelectionAddResultDialog;
+import fr.ifremer.coser.ui.result.SelectionEditResultDialog;
import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpeciesListModel;
import fr.ifremer.coser.ui.util.CoserListSelectionModel;
@@ -1070,6 +1071,27 @@
}
/**
+ * Show rsufi result edit dialog with selected rsufiresult.
+ *
+ * @param view view
+ */
+ public void showEditResultDialog(SelectionRsufiView view) {
+
+ // get selected rsufi result
+ int selectedRow = view.getSelectionResultsTable().getSelectedRow();
+ RSufiResult result = view.getSelectionResultsTableModel().getValue(selectedRow);
+
+ SelectionEditResultDialog editResultView = new SelectionEditResultDialog(view);
+ // TODO chatellier 20101121 il ne faudrait pas que ca soit le
+ // meme, sinon meme en annulant il est modifié
+ editResultView.setRsufiResult(result);
+ editResultView.setHandler(this);
+ editResultView.pack();
+ editResultView.setLocationRelativeTo(view);
+ editResultView.setVisible(true);
+ }
+
+ /**
* Save new result after clicking "ok" button on SelectionAddResultDialog
* opened by {@link #showAddResultDialog(SelectionRsufiView)}.
*
@@ -1094,6 +1116,27 @@
}
/**
+ * Save edited result (only save properties file).
+ *
+ * @param view view
+ */
+ public void performEditResult(SelectionEditResultDialog view) {
+ Project project = view.getContextValue(Project.class);
+ Selection selection = view.getContextValue(Selection.class);
+ ProjectService projectService = view.getContextValue(ProjectService.class);
+
+ RSufiResult editedResult = view.getRsufiResult();
+ try {
+ projectService.saveRsufiResults(project, selection, editedResult);
+ }
+ catch (CoserBusinessException ex) {
+ JOptionPane.showMessageDialog(view, ex.getMessage(), _("coser.ui.result.saveError"), JOptionPane.ERROR_MESSAGE);
+ throw new CoserException("Can't save result", ex);
+ }
+ view.dispose();
+ }
+
+ /**
* Selectionne le dossier d'extraction.
*
* @param view view
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2011-01-21 14:06:14 UTC (rev 534)
@@ -5,7 +5,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ 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 General Public License as
@@ -58,14 +58,22 @@
<cell weightx="1" weighty="2" fill="both">
<Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.availableDataTitle"))}'>
<row>
- <cell weightx="1" weighty="1" fill="both">
+ <cell columns="2" weightx="1" weighty="1" fill="both">
<JScrollPane>
- <JTable model="{new fr.ifremer.coser.ui.result.ResultTableModel(this)}"/>
+ <fr.ifremer.coser.ui.result.ResultTableModel id="selectionResultsTableModel"
+ javaBean="new fr.ifremer.coser.ui.result.ResultTableModel(this)" />
+ <JTable id="selectionResultsTable" model="{getSelectionResultsTableModel()}"/>
+ <ListSelectionModel javaBean="selectionResultsTable.getSelectionModel()"
+ onValueChanged="editResultButton.setEnabled(getSelectionResultsTable().getSelectedRow() != -1)" />
</JScrollPane>
</cell>
</row>
<row>
- <cell anchor="east">
+ <cell weightx="1" anchor="east">
+ <JButton id="editResultButton" text="coser.ui.result.editResult" enabled="false"
+ onActionPerformed="getHandler().showEditResultDialog(this)" />
+ </cell>
+ <cell>
<JButton text="coser.ui.result.addNewResult"
onActionPerformed="getHandler().showAddResultDialog(this)" />
</cell>
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2011-01-21 14:06:14 UTC (rev 534)
@@ -130,6 +130,7 @@
coser.ui.result.availableDataTitle=Available results \:
coser.ui.result.cancel=Cancel
coser.ui.result.creationDate=Result date \:
+coser.ui.result.editResult=Modify result
coser.ui.result.estComIndFile=ESTCOMind file \:
coser.ui.result.estPopIndFile=ESTPOPind file \:
coser.ui.result.extractDataButton=Extract as Rsufi format
@@ -138,7 +139,7 @@
coser.ui.result.mapsDirectory=Maps directory \:
coser.ui.result.newResult=New Result
coser.ui.result.otherDataFile=Other files \:
-coser.ui.result.publishResult=Publish \:
+coser.ui.result.publishResult=Publiable \:
coser.ui.result.requiredestComIndPath=ESTCOMind file is required
coser.ui.result.requiredestPopIndPath=ESTPOPind file is required
coser.ui.result.requiredname=Result name is required
@@ -150,6 +151,7 @@
coser.ui.result.table.estPopIndFile=ESTPOPind file
coser.ui.result.table.resultName=Result name
coser.ui.result.table.rsufiVersion=RSufi Version
+coser.ui.result.validEditResult=Modify result
coser.ui.result.validNewResult=Add this result
coser.ui.result.zone=Zone \:
coser.ui.selection.allSpecies=L1 \: All species (%d/%d)
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2011-01-20 10:54:12 UTC (rev 533)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2011-01-21 14:06:14 UTC (rev 534)
@@ -130,6 +130,7 @@
coser.ui.result.availableDataTitle=R\u00E9sultats disponibles
coser.ui.result.cancel=Annuler
coser.ui.result.creationDate=Date du r\u00E9sultats \:
+coser.ui.result.editResult=Modifier le r\u00E9sultat
coser.ui.result.estComIndFile=Fichier ESTCOMind \:
coser.ui.result.estPopIndFile=Fichier ESTPOPind \:
coser.ui.result.extractDataButton=Extraire au format RSufi
@@ -138,7 +139,7 @@
coser.ui.result.mapsDirectory=R\u00E9pertoire des cartes \:
coser.ui.result.newResult=Nouveau r\u00E9sultat
coser.ui.result.otherDataFile=Autre fichiers \:
-coser.ui.result.publishResult=Publication \:
+coser.ui.result.publishResult=Publiable \:
coser.ui.result.requiredestComIndPath=Le fichier ESTCOMind est requis
coser.ui.result.requiredestPopIndPath=Le fichier ESTPOPind est requis
coser.ui.result.requiredname=Le nom du r\u00E9sultat est requis
@@ -150,6 +151,7 @@
coser.ui.result.table.estPopIndFile=Fichier ESTPOPind
coser.ui.result.table.resultName=Nom du r\u00E9sultat
coser.ui.result.table.rsufiVersion=Version de RSufi
+coser.ui.result.validEditResult=Modifier le r\u00E9sultat
coser.ui.result.validNewResult=Ajouter le r\u00E9sultat
coser.ui.result.zone=Zone \:
coser.ui.selection.allSpecies=L1 \: Toutes les esp\u00E8ces (%d/%d)
1
0