Author: chatellier Date: 2010-12-17 16:38:20 +0000 (Fri, 17 Dec 2010) New Revision: 425 Log: Ajout de la date de creation du projet Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties trunk/coser-business/src/test/java/fr/ifremer/coser/services/PublicationServiceTest.java trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.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 Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2010-12-17 16:38:20 UTC (rev 425) @@ -28,6 +28,7 @@ import static org.nuiton.i18n.I18n._; import java.io.File; +import java.util.Locale; import org.nuiton.util.ApplicationConfig; @@ -72,6 +73,15 @@ return result; } + public Locale getLocale() { + Locale result = getOption(Locale.class, CoserBusinessOption.LOCALE.key); + return result; + } + + public void setLocale(Locale locale) { + setOption(CoserBusinessOption.LOCALE.key, locale.toString()); + } + public String getReferenceSpeciesPath() { String result = getOption(CoserBusinessOption.REFERENCE_SPECIES.key); return result; @@ -113,6 +123,8 @@ PROJECTS_DIRECTORY("coser.projects.directory", _("coser.config.projects.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "projects", String.class, false, false), VALIDATOR_DIRECTORY("coser.validator.directory", _("coser.config.validator.directory.description"), "${" + DATABASE_DIRECTORY.key + "}" + File.separator + "validators", String.class, false, false), + LOCALE("coser.locale", _("coser.config.locale.description"), Locale.FRANCE.toString(), Locale.class, false, false), + REFERENCE_SPECIES("coser.reference.species", _("coser.config.reference.species.description"), "", String.class, false, false), REFERENCE_TYPE_ESPECES("coser.reference.typeSpecies", _("coser.config.reference.typeSpecies.description"), "", String.class, false, false), Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java 2010-12-17 16:38:20 UTC (rev 425) @@ -27,6 +27,7 @@ import java.io.File; import java.util.ArrayList; +import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -101,7 +102,10 @@ protected String comment; protected Control control; - + + // FIXME echatellier 20101217 compabilité avec les projets beta (a retirer pour la v1) + protected Date creationDate = new Date(0); + protected Map<String, Selection> selections; /** Reftax SIH. */ @@ -220,6 +224,14 @@ getPropertyChangeSupport().firePropertyChange("comment", oldValue, comment); } + public Date getCreationDate() { + return creationDate; + } + + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } + public Control getControl() { return control; } @@ -305,6 +317,9 @@ if (comment != null) { props.setProperty("project.comment", comment); } + if (creationDate != null) { + props.setProperty("project.creationdate", String.valueOf(creationDate.getTime())); + } return props; } @@ -336,5 +351,9 @@ if (props.containsKey("project.comment")) { setComment(props.getProperty("project.comment")); } + if (props.containsKey("project.creationdate")) { + Date date = new Date(Long.parseLong(props.getProperty("project.creationdate"))); + setCreationDate(date); + } } } 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 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-12-17 16:38:20 UTC (rev 425) @@ -42,6 +42,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -160,6 +161,9 @@ throw new CoserBusinessException(_("Project %s already exist", project.getName())); } + // set project date + project.setCreationDate(new Date()); + // first free memory, clear all data project.clearData(); Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2010-12-17 16:38:20 UTC (rev 425) @@ -31,9 +31,11 @@ import java.io.File; import java.io.IOException; import java.io.PrintStream; +import java.text.DateFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Collection; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -530,15 +532,26 @@ * @param out stream */ protected void extractProjectReport(Project project, PrintStream out) { + + DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, config.getLocale()); + + // date du rapport + out.println("<div style='text-align:right;font-style:italic'>" + + _("coser.business.publication.date") +" : " + + dateFormat.format(new Date()) + "</div>"); + // partie projet out.println("<h2>" + _("coser.business.publication.projectdetails") + "</h2>"); out.println("<ul>"); + out.println("<li>" + _("coser.business.publication.creationdate") + " : " + dateFormat.format(project.getCreationDate())); out.println("<li>" + _("coser.business.publication.author") + " : " + project.getAuthor() + "</li>"); out.println("<li>" + _("coser.business.publication.catchfilename") + " : " + projectService.getDataStorageFileName(project, Category.CATCH, null) + "</li>"); out.println("<li>" + _("coser.business.publication.lengthfilename") + " : " + projectService.getDataStorageFileName(project, Category.LENGTH, null) + "</li>"); out.println("<li>" + _("coser.business.publication.haulfilename") + " : " + projectService.getDataStorageFileName(project, Category.HAUL, null) + "</li>"); out.println("<li>" + _("coser.business.publication.stratafilename") + " : " + projectService.getDataStorageFileName(project, Category.STRATA, null) + "</li>"); - out.println("<li>" + _("coser.business.publication.comment") + " : " + project.getComment() + "</li>"); + if (StringUtils.isNotEmpty(project.getComment())) { + out.println("<li>" + _("coser.business.publication.comment") + " : " + project.getComment() + "</li>"); + } out.println("</ul>"); } Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties =================================================================== --- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-12-17 16:38:20 UTC (rev 425) @@ -75,7 +75,9 @@ coser.business.publication.catchfilename=Catch file name coser.business.publication.comment=Comment coser.business.publication.controllogexporttitle=Selection report for %s (project %s) +coser.business.publication.creationdate=Creation date coser.business.publication.datamodification=Data modifications +coser.business.publication.date=On coser.business.publication.errorexportlines=Lines coser.business.publication.errorexporttitle=Error report for project %s coser.business.publication.errorgraph=Graph @@ -92,6 +94,7 @@ coser.config.control.nobsmin.description=Minimal observation number coser.config.control.typeFish.description=Fish species code type coser.config.database.directory.description=Coser database directory (all Coser data) +coser.config.locale.description=Application's locale coser.config.projects.directory.description=Coser projects directory coser.config.reference.species.description=Species reference file location (reftax) coser.config.reference.typeSpecies.description=Code type species file location Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties =================================================================== --- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-12-17 16:38:20 UTC (rev 425) @@ -75,7 +75,9 @@ coser.business.publication.catchfilename=Nom du fichier captures coser.business.publication.comment=Commentaire coser.business.publication.controllogexporttitle=Rapport de contr\u00F4le (projet %s) +coser.business.publication.creationdate=Date de cr\u00E9action coser.business.publication.datamodification=Modifications sur les donn\u00E9es +coser.business.publication.date=Le coser.business.publication.errorexportlines=Lignes coser.business.publication.errorexporttitle=Rapport d'erreur pour le projet %s coser.business.publication.errorgraph=Graphique @@ -92,6 +94,7 @@ coser.config.control.nobsmin.description=Nombre minimal d'observation coser.config.control.typeFish.description=Nom du type d'esp\u00E8ces correspondant aux poissons coser.config.database.directory.description=Emplacement du dossier de toutes les donn\u00E9es relatives \u00E0 Coser +coser.config.locale.description=Langue de l'application coser.config.projects.directory.description=Emplacement du dossier de sauvegarde des projets coser.config.reference.species.description=Emplacement du fichier de r\u00E9f\u00E9rence des esp\u00E8ces (Reftax) coser.config.reference.typeSpecies.description=Emplacement du fichier de code type des esp\u00E8ces Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/PublicationServiceTest.java =================================================================== --- trunk/coser-business/src/test/java/fr/ifremer/coser/services/PublicationServiceTest.java 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/PublicationServiceTest.java 2010-12-17 16:38:20 UTC (rev 425) @@ -177,7 +177,7 @@ Assert.assertTrue(fileContent.indexOf("from \"251.86\" to \"392.98\"") > 0); // clean all - //htmlExport.delete(); + htmlExport.delete(); } /** Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/CoserConfig.java 2010-12-17 16:38:20 UTC (rev 425) @@ -54,15 +54,6 @@ } } - public Locale getLocale() { - Locale result = getOption(Locale.class, CoserOption.LOCALE.key); - return result; - } - - public void setLocale(Locale locale) { - setOption(CoserOption.LOCALE.key, locale.toString()); - } - public String getLookAndFeel() { String className = getOption(CoserOption.LOOKANDFEEL.key); return className; @@ -103,7 +94,6 @@ public static enum CoserOption implements OptionDef { CONFIG_FILE(CONFIG_FILE_NAME, _("coser.config.config.file.description"), "coser.properties", String.class, true, true), - LOCALE("coser.locale", _("coser.config.locale.description"), Locale.FRANCE.toString(), Locale.class, false, false), LOOKANDFEEL("coser.lookandfeel", _("coser.config.lookandfeel.description"), "Nimbus", String.class, false, false), APPLICATION_VERSION("coser.application.version", _("coser.config.application.version.description"), null, String.class, false, false), SMTP_HOST("coser.smtp.host", _("coser.config.smtp.host.description"), "smtp", String.class, false, false), Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx 2010-12-17 16:38:20 UTC (rev 425) @@ -40,6 +40,14 @@ </row> <row> <cell anchor="west"> + <JLabel text="coser.ui.project.projectcreation" /> + </cell> + <cell anchor="west"> + <JLabel text="{java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.LONG, java.text.DateFormat.SHORT, getContextValue(fr.ifremer.coser.CoserConfig.class).getLocale()).format(getProject().getCreationDate())}" /> + </cell> + </row> + <row> + <cell anchor="west"> <JLabel text="coser.ui.project.projectauthor" /> </cell> <cell anchor="west"> 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 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-12-17 16:38:20 UTC (rev 425) @@ -6,7 +6,6 @@ coser.config.category.path=Path coser.config.category.path.description=File and directory configuration coser.config.config.file.description=Coser configuration file -coser.config.locale.description=Application's locale coser.config.lookandfeel.description=Application's swing theme coser.config.smtp.host.description=SMTP host address coser.config.support.email.description=Support email address @@ -108,6 +107,7 @@ coser.ui.project.project=Project \: coser.ui.project.projectauthor=Author \: coser.ui.project.projectcomment=Comment \: +coser.ui.project.projectcreation=Creation date \: coser.ui.project.projectname=Project name \: coser.ui.project.removeMaps=Remove map coser.ui.project.saveProject=Save project @@ -155,6 +155,7 @@ coser.ui.selection.detail.speciesAccordion=Species coser.ui.selection.detail.strataAccordion=Strata coser.ui.selection.detail.yearAccordion=Years +coser.ui.selection.detail.yearsvalidated=Years validated. coser.ui.selection.details.addToSelectedListTip=Add selected species to selected species list. coser.ui.selection.details.comment=Comments \: coser.ui.selection.details.description=Description \: 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 2010-12-16 17:22:30 UTC (rev 424) +++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-12-17 16:38:20 UTC (rev 425) @@ -6,7 +6,6 @@ coser.config.category.path=Chemins coser.config.category.path.description=Configuration des fichiers et r\u00E9pertoires coser.config.config.file.description=Fichier de configuration de Coser -coser.config.locale.description=Langue de l'application coser.config.lookandfeel.description=Themes graphique Swing de l'application coser.config.smtp.host.description=Adresse du serveur SMTP pour envoyer les mails coser.config.support.email.description=Adresse de support pour l'envoi des erreurs @@ -108,6 +107,7 @@ coser.ui.project.project=Projet \: coser.ui.project.projectauthor=Auteur \: coser.ui.project.projectcomment=Commentaire \: +coser.ui.project.projectcreation=Date de cr\u00E9ation \: coser.ui.project.projectname=Nom du projet \: coser.ui.project.removeMaps=Supprimer coser.ui.project.saveProject=Sauver le projet @@ -155,6 +155,7 @@ coser.ui.selection.detail.speciesAccordion=Esp\u00E8ces coser.ui.selection.detail.strataAccordion=Strates coser.ui.selection.detail.yearAccordion=Ann\u00E9es +coser.ui.selection.detail.yearsvalidated=Ann\u00E9es valid\u00E9es. coser.ui.selection.details.addToSelectedListTip=Ajoute les esp\u00E8ces s\u00E9lectionn\u00E9es \u00E0 la liste des especes s\u00E9lectionn\u00E9es. coser.ui.selection.details.comment=Commentaire \: coser.ui.selection.details.description=Description \: