r342 - in trunk: . src src/site src/update tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config tutti-persistence/src/test/java/fr/ifremer/tutti/persistence tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/main/java/fr/ifremer/tutti/service/config tutti-ui-swing/src/main/assembly tutti-ui-swing/src/main/assembly/full tutti-ui-swing/src/main/assembly/min tutti-ui-swing/src/main/filtered-resources
Author: tchemit Date: 2013-02-06 01:47:07 +0100 (Wed, 06 Feb 2013) New Revision: 342 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/342 Log: refs ##1711: [TECH] V?\195?\169rification de l'existence d'une nouvelle version (am?\195?\169lioration du process d'update (un seul callback)) - ajout update i18n refs #1838: [REFERENTIEL] - Import / Export des r?\195?\169f?\195?\169rentiel (ajout des api et des ?\195?\169crans) - ajout des icones dans le titre d'un ?\195?\169cran Added: trunk/src/update/ trunk/src/update/update-tutti.properties trunk/tutti-ui-swing/src/main/assembly/i18n.xml trunk/tutti-ui-swing/src/main/assembly/min/tutti.config trunk/tutti-ui-swing/src/main/filtered-resources/tutti.config trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java trunk/tutti-ui-swing/src/main/resources/icons/action-species.gif trunk/tutti-ui-swing/src/main/resources/icons/action-temporary-referential-import.png trunk/tutti-ui-swing/src/main/resources/icons/action-update-referential.png Removed: trunk/src/site/update/ trunk/src/update/update-application.properties trunk/tutti-ui-swing/src/main/assembly/min/tutti.properties trunk/tutti-ui-swing/src/main/filtered-resources/tutti.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDatabaseUpdaterCallBack.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java Modified: trunk/pom.xml trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh trunk/tutti-ui-swing/src/main/assembly/min/update.bat trunk/tutti-ui-swing/src/main/assembly/min/update.sh trunk/tutti-ui-swing/src/main/assembly/standalone.xml trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/pom.xml 2013-02-06 00:47:07 UTC (rev 342) @@ -166,6 +166,9 @@ <!-- Last JRE version to use --> <jreVersion>1.7.10</jreVersion> + <!-- Last tutti db version --> + <dbVersion>2013.02.02</dbVersion> + </properties> <dependencyManagement> @@ -524,6 +527,77 @@ </profile> <profile> + <id>deploy-update</id> + <activation> + <property> + <name>performRelease</name> + <value>true</value> + </property> + </activation> + + <build> + <plugins> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>copy update-properties to site</id> + <phase>package</phase> + <inherited>false</inherited> + <configuration> + <tasks> + <echo message="Copy model to site"/> + <copy verbose="true" failonerror="false" + overwrite="true" filtering="true" + todir="${project.build.directory}/update"> + <filterset> + <filter value="${project.version}" + token="projectVersion"/> + <filter value="${jreVersion}" token="jreVersion"/> + <filter value="${dbVersion}" token="dbVersion"/> + </filterset> + <fileset dir="${basedir}/src/update/"> + <include name="update-tutti.properties"/> + </fileset> + </copy> + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>wagon-maven-plugin</artifactId> + <version>1.0-beta-4</version> + <executions> + <execution> + <phase>deploy</phase> + <goals> + <goal>upload-single</goal> + </goals> + <configuration> + <serverId>forge.codelutin.com</serverId> + <fromFile> + ${project.build.directory}/update/update-tutti.properties + </fromFile> + <url> + scpexe://forge.codelutin.com/var/www/ApplicationUpdate/http/tutti + </url> + </configuration> + </execution> + </executions> + + </plugin> + </plugins> + </build> + + </profile> + + <profile> <id>reporting</id> <activation> <property> @@ -532,40 +606,6 @@ </property> </activation> - <build> - <plugins> - <plugin> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>copy update-properties to site</id> - <phase>pre-site</phase> - <inherited>false</inherited> - <configuration> - <tasks> - <echo message="Copy model to site"/> - <copy verbose="${maven.verbose}" failonerror="false" - overwrite="true" filtering="true" - todir="${project.reporting.outputDirectory}/update"> - <filterset> - <filter value="${project.version}" token="projectVersion"/> - <filter value="${jreVersion}" token="jreVersion"/> - </filterset> - <fileset dir="${basedir}/src/site/update/"> - <include name="**/*.properties"/> - </fileset> - </copy> - </tasks> - </configuration> - <goals> - <goal>run</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - <reporting> <plugins> Deleted: trunk/src/update/update-application.properties =================================================================== --- trunk/src/site/update/update-application.properties 2013-02-05 14:44:38 UTC (rev 335) +++ trunk/src/update/update-application.properties 2013-02-06 00:47:07 UTC (rev 342) @@ -1,34 +0,0 @@ -### -# #%L -# Tutti -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2013 Ifremer -# %% -# 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% -### -tutti.version=@projectVersion@ -tutti.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-releases/fr/ifremer... -jre.version=@jreVersion@ -#linux.amd64.jre.version=@jreVersion@ -linux.amd64.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... -#linux.i386.jre.version=@jreVersion@ -linux.i386.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... -#windows.amd64.jre.version=@jreVersion@ -windows.amd64.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... -#windows.i386.jre.version=@jreVersion@ -windows.i386.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... Copied: trunk/src/update/update-tutti.properties (from rev 335, trunk/src/site/update/update-application.properties) =================================================================== --- trunk/src/update/update-tutti.properties (rev 0) +++ trunk/src/update/update-tutti.properties 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,55 @@ +### +# #%L +# Tutti +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2012 - 2013 Ifremer +# %% +# 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% +### + +################################################################################ +### JRE Updates ################################################################ +################################################################################ + +jre.version=@jreVersion@ +linux.amd64.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... +linux.i386.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... +windows.amd64.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... +windows.i386.jre.url=zip:http://nexus.nuiton.org/nexus/content/repositories/jvm/com/oracle/jre/@jreVe... + +################################################################################ +### Tutti Updates ############################################################## +################################################################################ + +tutti.version=@projectVersion@ +tutti.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-releases/fr/ifremer... + +################################################################################ +### I18n Updates ############################################################### +################################################################################ + +i18n.version=@projectVersion@ +i18n.url=zip:http://nexus.nuiton.org/nexus/content/repositories/other-releases/fr/ifremer... + +################################################################################ +### DB Updates ################################################################# +################################################################################ + +db.version=@dbVersion@ +db.url=zip:http://tutti.nuiton.org/tutti/auth/tutti-db-@dbVersion@.zip +db.auth=true \ No newline at end of file Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-06 00:47:07 UTC (rev 342) @@ -46,6 +46,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Zone; import org.springframework.transaction.annotation.Transactional; +import java.io.File; import java.util.List; /** @@ -185,45 +186,74 @@ boolean isSortedQualitativeValue(CaracteristicQualitativeValue value); /** - * Import given temporary species. + * Import temporary species from the given csv import file. * - * @param species species to import - * @return imported species + * @param importFile csv file to import * @since 1.0 */ @Transactional(readOnly = false) - List<Species> importTemporarySpecies(List<Species> species); + void importTemporarySpecies(File importFile); /** - * Import given temporary vessels. + * Export some example temporary species to the given file. * - * @param vessels vessels to import - * @return imported vessels + * @param exportFile file where to export data * @since 1.0 */ + void exportTemporarySpeciesExample(File exportFile); + + /** + * Import temporary vessels from the given csv import file. + * + * @param importfile csv file to import + * @since 1.0 + */ @Transactional(readOnly = false) - List<Vessel> importTemporaryVessel(List<Vessel> vessels); + void importTemporaryVessel(File importfile); /** - * Import given temporary persons. + * Export some example temporary vessels to the given file. * - * @param persons persons to import - * @return imported persons + * @param exportFile file where to export data * @since 1.0 */ + void exportTemporaryVesselExample(File exportFile); + + /** + * Import temporary persons from the given csv import file. + * + * @param importFile csv file to import + * @since 1.0 + */ @Transactional(readOnly = false) - List<Person> importTemporaryPerson(List<Person> persons); + void importTemporaryPerson(File importFile); /** - * Import given temporary gears. + * Export some example temporary person to the given file. * - * @param gears gears to import - * @return imported gears + * @param exportFile file where to export data * @since 1.0 */ + void exportTemporaryPersonExample(File exportFile); + + /** + * Import temporary gears from the given csv import file. + * + * @param importFile csv file to import + * @since 1.0 + */ @Transactional(readOnly = false) - List<Gear> importTemporaryGear(List<Gear> gears); + void importTemporaryGear(File importFile); + /** + * Export some example temporary gears to the given file. + * + * @param exportFile file where to export data + * @since 1.0 + */ + void exportTemporaryGearExample(File exportFile); + + //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-06 00:47:07 UTC (rev 342) @@ -58,7 +58,6 @@ import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.persistence.entities.referential.Status; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.persistence.entities.referential.Zone; import org.apache.commons.io.FileUtils; @@ -381,82 +380,43 @@ } @Override - public List<Species> importTemporarySpecies(List<Species> species) { + public void importTemporarySpecies(File importFile) { + throw new IllegalStateException("method 'importTemporarySpecies' not implemented"); + } - List<Species> result = Lists.newArrayListWithCapacity(species.size()); - Status status = new Status(); - status.setId("2"); - - String name = getKey(Species.class, null); - for (Species toCreate : species) { - Species created = create(name, toCreate, false); - created.setStatus(status); - result.add(created); - } - persistToFile(name); - return result; + @Override + public void importTemporaryVessel(File importfile) { + throw new IllegalStateException("method 'importTemporaryVessel' not implemented"); } @Override - public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { - List<Vessel> result = Lists.newArrayListWithCapacity(vessels.size()); - Status status = new Status(); - status.setId("2"); + public void importTemporaryPerson(File importFile) { + throw new IllegalStateException("method 'importTemporaryPerson' not implemented"); + } - String nameScientific = getKey(Vessel.class, "Scientific"); - String nameFishing = getKey(Vessel.class, "Fishing"); - for (Vessel toCreate : vessels) { - Vessel created; - if (toCreate.isScientificVessel()) { - created = create(nameScientific, toCreate, false); - } else { - created = create(nameFishing, toCreate, false); - } - created.setStatus(status); - result.add(created); - } - persistToFile(nameScientific); - persistToFile(nameFishing); - return result; + @Override + public void importTemporaryGear(File importFile) { + throw new IllegalStateException("method 'importTemporaryGear' not implemented"); } @Override - public List<Person> importTemporaryPerson(List<Person> persons) { - List<Person> result = Lists.newArrayListWithCapacity(persons.size()); - Status status = new Status(); - status.setId("2"); + public void exportTemporarySpeciesExample(File exportFile) { + throw new IllegalStateException("method 'exportTemporarySpeciesExample' not implemented"); + } - String name = getKey(Person.class, null); - for (Person toCreate : persons) { - Person created = create(name, toCreate, false); - created.setStatus(status); - result.add(created); - } - persistToFile(name); - return result; + @Override + public void exportTemporaryVesselExample(File exportFile) { + throw new IllegalStateException("method 'exportTemporaryVesselExample' not implemented"); } @Override - public List<Gear> importTemporaryGear(List<Gear> gears) { - List<Gear> result = Lists.newArrayListWithCapacity(gears.size()); - Status status = new Status(); - status.setId("2"); + public void exportTemporaryPersonExample(File exportFile) { + throw new IllegalStateException("method 'exportTemporaryPersonExample' not implemented"); + } - String nameScientific = getKey(Gear.class, "Scientific"); - String nameFishing = getKey(Gear.class, "Fishing"); - for (Gear toCreate : gears) { - Gear created; - if (toCreate.isScientificGear()) { - created = create(nameScientific, toCreate, false); - } else { - created = create(nameFishing, toCreate, false); - } - created.setStatus(status); - result.add(created); - } - persistToFile(nameScientific); - persistToFile(nameFishing); - return result; + @Override + public void exportTemporaryGearExample(File exportFile) { + throw new IllegalStateException("method 'exportTemporaryGearExample' not implemented"); } //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-06 00:47:07 UTC (rev 342) @@ -62,6 +62,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; +import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; @@ -287,25 +288,50 @@ } @Override - public List<Species> importTemporarySpecies(List<Species> species) { - return referentialService.importTemporarySpecies(species); + public void importTemporarySpecies(File importFile) { + + List<Species> species = null; + referentialService.importTemporarySpecies(species); } @Override - public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { - return referentialService.importTemporaryVessel(vessels); + public void importTemporaryVessel(File importfile) { + List<Vessel> vessels = null; + referentialService.importTemporaryVessel(vessels); } @Override - public List<Person> importTemporaryPerson(List<Person> persons) { - return referentialService.importTemporaryPerson(persons); + public void importTemporaryPerson(File importFile) { + List<Person> persons = null; + referentialService.importTemporaryPerson(persons); } @Override - public List<Gear> importTemporaryGear(List<Gear> gears) { - return referentialService.importTemporaryGear(gears); + public void importTemporaryGear(File importFile) { + List<Gear> gears = null; + referentialService.importTemporaryGear(gears); } + @Override + public void exportTemporarySpeciesExample(File exportFile) { + //TODO + } + + @Override + public void exportTemporaryVesselExample(File exportFile) { + //TODO + } + + @Override + public void exportTemporaryPersonExample(File exportFile) { + //TODO + } + + @Override + public void exportTemporaryGearExample(File exportFile) { + //TODO + } + //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java 2013-02-06 00:47:07 UTC (rev 342) @@ -59,7 +59,7 @@ DB_CONFIGURATION_PATH( "tutti.persistence.db.configurationPath", n_("tutti.option.persistence.db.configurationPath.description"), - "${tutti.config.directory}/db/conf.properties", + "${tutti.data.directory}/dbconf/conf.properties", File.class, true, true), @@ -67,7 +67,7 @@ DB_ENUMERATION_PATH( "tutti.persistence.db.enumerationPath", n_("tutti.option.persistence.db.enumerationPath.description"), - "${tutti.config.directory}/db/enumerations-v3.properties", + "${tutti.data.directory}/dbconf/enumerations-v3.properties", File.class, true, true), Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-02-06 00:47:07 UTC (rev 342) @@ -148,9 +148,7 @@ applicationConfig.loadDefaultOptions( TuttiPersistenceConfigOption.values()); applicationConfig.setDefaultOption("tutti.data.directory", - new File(resourceDirectory,"data").getAbsolutePath()); - applicationConfig.setDefaultOption("tutti.config.directory", - new File(resourceDirectory,"config").getAbsolutePath()); + new File(resourceDirectory, "data").getAbsolutePath()); applicationConfig.parse(); config = new TuttiPersistenceConfig(applicationConfig); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-06 00:47:07 UTC (rev 342) @@ -176,7 +176,8 @@ }; if (log.isInfoEnabled()) { - log.info("Will open persistence driver " + driver.getImplementationName()); + log.info("Will open persistence driver " + + driver.getImplementationName()); } driver.init(); @@ -187,7 +188,8 @@ public void close() throws IOException { if (log.isInfoEnabled()) { - log.info("Will close persistence Service " + getImplementationName()); + log.info("Will close persistence Service " + + getImplementationName()); } IOUtils.closeQuietly(driver); @@ -313,25 +315,45 @@ } @Override - public List<Species> importTemporarySpecies(List<Species> species) { - return driver.importTemporarySpecies(species); + public void importTemporarySpecies(File importFile) { + driver.importTemporarySpecies(importFile); } @Override - public List<Vessel> importTemporaryVessel(List<Vessel> vessels) { - return driver.importTemporaryVessel(vessels); + public void importTemporaryVessel(File importFile) { + driver.importTemporaryVessel(importFile); } @Override - public List<Person> importTemporaryPerson(List<Person> persons) { - return driver.importTemporaryPerson(persons); + public void importTemporaryPerson(File importFile) { + driver.importTemporaryPerson(importFile); } @Override - public List<Gear> importTemporaryGear(List<Gear> gears) { - return driver.importTemporaryGear(gears); + public void importTemporaryGear(File importFile) { + driver.importTemporaryGear(importFile); } + @Override + public void exportTemporarySpeciesExample(File exportFile) { + driver.exportTemporarySpeciesExample(exportFile); + } + + @Override + public void exportTemporaryVesselExample(File exportFile) { + driver.exportTemporaryVesselExample(exportFile); + } + + @Override + public void exportTemporaryPersonExample(File exportFile) { + driver.exportTemporaryPersonExample(exportFile); + } + + @Override + public void exportTemporaryGearExample(File exportFile) { + driver.exportTemporaryGearExample(exportFile); + } + //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfigOption.java 2013-02-06 00:47:07 UTC (rev 342) @@ -48,13 +48,6 @@ File.class, true, true), - CONFIG_DIRECTORY( - "tutti.config.directory", - n_("tutti.option.config.directory.description"), - "${user.home}/.tutti/config", - File.class, - true, - true), TMP_DIRECTORY( "tutti.tmp.directory", n_("tutti.option.tmp.directory.description"), @@ -76,7 +69,7 @@ SITE_URL( "tutti.site.url", n_("tutti.option.site.url.description"), - "http://forge.codelutin.com/projects/tutti", + "http://maven-site.forge.codelutin.com/tutti", URL.class, true, true), Modified: trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh 2013-02-06 00:47:07 UTC (rev 342) @@ -7,7 +7,7 @@ cd $REP -echo "tutti basedir: $REP" +echo "tutti basedir: $REP" echo "tutti app home: $TUTTI_HOME" echo "tutti jre home: $JAVA_HOME" Added: trunk/tutti-ui-swing/src/main/assembly/i18n.xml =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/i18n.xml (rev 0) +++ trunk/tutti-ui-swing/src/main/assembly/i18n.xml 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,31 @@ + +<assembly + xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> + <id>i18n</id> + <formats> + <format>zip</format> + </formats> + + <fileSets> + + <fileSet> + <directory>target/classes/META-INF</directory> + <outputDirectory/> + <includes> + <include>tutti-i18n*.properties</include> + </includes> + </fileSet> + + <fileSet> + <directory>src/main/assembly/min</directory> + <outputDirectory/> + <filtered>true</filtered> + <includes> + <include>versopn.appup</include> + </includes> + </fileSet> + + </fileSets> +</assembly> \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/assembly/i18n.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Copied: trunk/tutti-ui-swing/src/main/assembly/min/tutti.config (from rev 335, trunk/tutti-ui-swing/src/main/assembly/min/tutti.properties) =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/min/tutti.config (rev 0) +++ trunk/tutti-ui-swing/src/main/assembly/min/tutti.config 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,33 @@ +### +# #%L +# Tutti :: UI +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2012 - 2013 Ifremer +# %% +# 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% +### + +# base directory of tutti full application (tutti + jre) +tutti.application.basedir=.. + +# directory where data (database, protocole) are stored +tutti.data.directory=${tutti.application.basedir}/data + +# url to update application +tutti.update.application.url=file://${project.basedir}/update-tutti.properties +#tutti.update.database.url=http://tutti.forge.codelutin.com/tutti/update-tutti.properties Deleted: trunk/tutti-ui-swing/src/main/assembly/min/tutti.properties =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/min/tutti.properties 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/assembly/min/tutti.properties 2013-02-06 00:47:07 UTC (rev 342) @@ -1,40 +0,0 @@ -### -# #%L -# Tutti :: UI -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2013 Ifremer -# %% -# 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% -### - -# base directory of tutti full application (tutti + jre) -tutti.application.basedir=.. - -# directory where data (database, protocole) are stored -tutti.data.directory=${tutti.application.basedir}/data - -# directory where external configuration (db, i18n) are stored -tutti.config.directory=${tutti.application.basedir}/config - -# url to update jre and application -tutti.update.application.url=file://${project.basedir}/update-application.properties -#tutti.update.application.url=http://maven-site.forge.codelutin.com/tutti/update/update-application.proper... - -# url to update database -tutti.update.database.url=file://${project.basedir}/update-database.properties -#tutti.update.database.url=http://tuttidb:3RACev2Nw8uEDEvsy0vJ@tutti.nuiton.org/tutti/update-database.p... Modified: trunk/tutti-ui-swing/src/main/assembly/min/update.bat =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/min/update.bat 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/assembly/min/update.bat 2013-02-06 00:47:07 UTC (rev 342) @@ -16,18 +16,30 @@ :tutti -if not exist "NEW\tutti" goto end +if not exist "NEW\tutti" goto i18n rem deplacement de l'ancien tutti set /p oldVersion=<tutti\version.appup set /p newVersion=<NEW\tutti\version.appup set backupdir=OLD\tutti-%oldVersion: =%-%BACKUP_DATE: =% -echo Update tutti version %oldVersion: =% to %newVersion: =% old jre keep in "%backupdir%" +echo Update tutti version %oldVersion: =% to %newVersion: =% old tutti keep in "%backupdir%" if not exist "OLD" mkdir OLD move tutti "%backupdir%" move NEW\tutti tutti +:i18n +if not exist "NEW\i18n" goto end + +rem deplacement de l'ancien i18n +set /p oldVersion=<i18n\version.appup +set /p newVersion=<NEW\i18n\version.appup +set backupdir=OLD\tutti-%oldVersion: =%-%BACKUP_DATE: =% +echo Update i18n version %oldVersion: =% to %newVersion: =% old i18n keep in "%backupdir%" +if not exist "OLD" mkdir OLD +move i18n "%backupdir%" +move NEW\i18n i18n + :end if exist "NEW" rmdir /Q NEW \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/assembly/min/update.sh =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/min/update.sh 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/assembly/min/update.sh 2013-02-06 00:47:07 UTC (rev 342) @@ -27,4 +27,16 @@ chmod +x tutti/launch.sh fi +if [ -d NEW/i18n ]; then + oldVersion=`cat i18n/version.appup` + newVersion=`cat NEW/i18n/version.appup` + echo "Update i18n version $oldVersion to $newVersion" + mkdir -p OLD + backupdir=OLD/i18n-$oldVersion-$BACKUP_DATE + echo "Backup i18n old version to $backupdir" + mv i18n $backupdir + mv NEW/i18n . +fi + + rm -rf NEW Modified: trunk/tutti-ui-swing/src/main/assembly/standalone.xml =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/standalone.xml 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/assembly/standalone.xml 2013-02-06 00:47:07 UTC (rev 342) @@ -63,7 +63,8 @@ <include>launch.bat</include> <include>update.sh</include> <include>update.bat</include> - <include>tutti.properties</include> + <include>tutti.config</include> + <include>version.appup</include> </includes> </fileSet> Copied: trunk/tutti-ui-swing/src/main/filtered-resources/tutti.config (from rev 335, trunk/tutti-ui-swing/src/main/filtered-resources/tutti.properties) =================================================================== --- trunk/tutti-ui-swing/src/main/filtered-resources/tutti.config (rev 0) +++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti.config 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,27 @@ +### +# #%L +# Tutti :: UI +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2012 Ifremer +# %% +# 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% +### +tutti.version=${project.version} +tutti.site.url=${project.url} +tutti.inceptionYear=${project.inceptionYear} +tutti.organizationName=${license.organizationName} \ No newline at end of file Deleted: trunk/tutti-ui-swing/src/main/filtered-resources/tutti.properties =================================================================== --- trunk/tutti-ui-swing/src/main/filtered-resources/tutti.properties 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti.properties 2013-02-06 00:47:07 UTC (rev 342) @@ -1,27 +0,0 @@ -### -# #%L -# Tutti :: UI -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 Ifremer -# %% -# 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% -### -tutti.version=${project.version} -tutti.site.url=${project.url} -tutti.inceptionYear=${project.inceptionYear} -tutti.organizationName=${license.organizationName} \ No newline at end of file Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,51 @@ +package fr.ifremer.tutti.ui.swing; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.SwingUtilities; +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n._; + +/** + * Open screen to import referential + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ImportTemporaryReferentialAction extends AbstractChangeScreenAction { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ImportTemporaryReferentialAction.class); + + public ImportTemporaryReferentialAction(MainUIHandler handler) { + super(handler, + "importTemporaryReferential", + "temporary-referential-import", + _("tutti.action.importTemporaryReferential"), + _("tutti.action.importTemporaryReferential.tip"), + true + ); + } + + @Override + protected void doAction(ActionEvent e) { + getContext().setScreen(getNextScreen()); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + getContext().getMainUI().getBody().revalidate(); + } + }); + + } + + @Override + protected TuttiScreen getNextScreen() { + return TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL; + } +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-06 00:47:07 UTC (rev 342) @@ -92,6 +92,21 @@ _tuttiAction: {ValidateSelectedCruiseCatchesAction.class}; } +#menuReferential{ + text: "tutti.menu.referential"; + toolTipText: "tutti.menu.referential.tip"; + mnemonic: S; +} + +#menuImportTemporaryReferential { + enabled: {model.getScreen() != TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL}; + _tuttiAction: {ImportTemporaryReferentialAction.class}; +} + +#menuUpdateReferential { + _tuttiAction: {UpdateReferentialAction.class}; +} + #menuSynchronisations { text: "tutti.menu.synchronisations"; toolTipText: "tutti.menu.synchronisations.tip"; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-06 00:47:07 UTC (rev 342) @@ -72,6 +72,12 @@ <JMenuItem id='menuActionValidateCatches'/> </JMenu> + <JMenu id='menuReferential'> + + <JMenuItem id='menuImportTemporaryReferential'/> + <JMenuItem id='menuUpdateReferential'/> + </JMenu> + <JMenu id='menuSynchronisations'> <JMenuItem id='menuSynchronisationImport' Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-02-06 00:47:07 UTC (rev 342) @@ -35,6 +35,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; +import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI; import jaxx.runtime.swing.AboutPanel; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.validator.swing.SwingValidator; @@ -43,7 +44,9 @@ import org.nuiton.util.ApplicationConfig; import org.nuiton.widget.SwingSession; +import javax.swing.Icon; import javax.swing.JComponent; +import javax.swing.JLabel; import javax.swing.JToolBar; import java.awt.Desktop; import java.beans.PropertyChangeEvent; @@ -310,12 +313,14 @@ JComponent screenUI; String screenTitle; + Icon icon; switch (screen) { default: case SELECT_CRUISE: screenUI = new SelectCruiseUI(ui); screenTitle = _("tutti.title.home"); + icon = ui.getMenuActionSelectCruise().getIcon(); break; case EDIT_PROGRAM: @@ -327,6 +332,7 @@ } screenUI = new EditProgramUI(ui); + icon = ui.getMenuActionEditProgram().getIcon(); break; case EDIT_CRUISE: @@ -338,6 +344,7 @@ } screenUI = new EditCruiseUI(ui); + icon = ui.getMenuActionEditCruise().getIcon(); break; case EDIT_PROTOCOL: @@ -349,12 +356,14 @@ } screenUI = new EditProtocolUI(ui); + icon = ui.getMenuActionEditProtocol().getIcon(); break; case CLONE_PROTOCOL: screenTitle = _("tutti.title.create.protocol"); ui.setContextValue(true, CLONE_PROTOCOL); screenUI = new EditProtocolUI(ui); + icon = ui.getMenuActionEditProtocol().getIcon(); break; case EDIT_FISHING_OPERATION: @@ -365,19 +374,30 @@ // edit catches screenTitle = _("tutti.title.edit.operations", getSelectedCruiseTitle()); + icon = ui.getMenuActionEditCatches().getIcon(); } else { // validate catches screenTitle = _("tutti.title.validate.operations", getSelectedCruiseTitle()); + icon = ui.getMenuActionValidateCatches().getIcon(); } screenUI = new FishingOperationsUI(ui); + break; + + case IMPORT_TEMPORARY_REFERENTIAL: + screenTitle = _("tutti.title.import.temporary.referential"); + screenUI = new ManageTemporaryReferentialUI(ui); + icon = ui.getMenuImportTemporaryReferential().getIcon(); + break; } this.currentBody = screenUI; context.getSwingSession().add(currentBody); ui.getBody().setTitle(screenTitle); ui.getBody().add(currentBody); + ui.getBody().setLeftDecoration(new JLabel(icon)); + } } catch (Exception e) { @@ -391,20 +411,6 @@ } } -// protected void closeTutti(boolean exit) { -// -// context.getSwingSession().save(); -// -// ui.setVisible(false); -// ui.dispose(); -// -// onCloseUI(); -// -// if (exit) { -// System.exit(0); -// } -// } - protected void changeTitle() { String title = getSelectedCruiseTitle(); @@ -468,7 +474,6 @@ title += _("tutti.title.selectedProtocol", protocol.getName()); } - } return title; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-02-06 00:47:07 UTC (rev 342) @@ -51,7 +51,7 @@ public static void main(String... args) { // Create configuration - TuttiApplicationConfig config = new TuttiApplicationConfig("tutti.properties", args); + TuttiApplicationConfig config = new TuttiApplicationConfig("tutti.config", args); // Create application context TuttiUIContext context = TuttiUIContext.newContext(config); @@ -62,17 +62,13 @@ if (config.isFullLaunchMode()) { if (log.isInfoEnabled()) { - log.info("Full launch mode, try to update jre / application."); + log.info("Full launch mode, try to update."); } - // do the application and jre updates - // try to update jre or/and application - updateTuttiJreOrApplication(context); + // try to do some updates + updateTutti(context); } - // try to update database - updateTuttiDatabase(context); - // Prepare ui look&feel and load ui properties try { SwingUtil.initNimbusLoookAndFeel(); @@ -85,10 +81,8 @@ UIManager.put("Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(Color.BLACK)); - //UIManager.put("BlockingLayerUI.blockingColor", new Color(50, 50, 50)); startTutti(context); - } public static void startTutti(TuttiUIContext context) { @@ -113,7 +107,7 @@ } } - public static void updateTuttiJreOrApplication(TuttiUIContext context) { + public static void updateTutti(TuttiUIContext context) { TuttiApplicationConfig config = context.getConfig(); File current = config.getTuttiBasedir(); @@ -121,11 +115,11 @@ // can not update application if (log.isWarnEnabled()) { - log.warn("No application directory defined, skip jre or application update."); + log.warn("No application directory defined, skip updates."); } } else { - String url = config.getApplicationUpdateUrl(); + String url = config.getUpdateUrl(); if (log.isInfoEnabled()) { log.info(String.format("Try to update jre or application (current application location: %s), using update url: %s", current, url)); } @@ -136,24 +130,8 @@ current, dest, false, - new TuttiApplicationUpdaterCallBack()); + new TuttiApplicationUpdaterCallBack(context)); } } - public static void updateTuttiDatabase(TuttiUIContext context) { - TuttiApplicationConfig config = context.getConfig(); - String url = config.getDatabaseUpdateUrl(); - ApplicationUpdater up = new ApplicationUpdater(); - - File current = config.getServiceConfig().getPersistenceConfig().getDbDirectory(); - File dest = new File(config.getTuttiBasedir(), "NEW"); - if (log.isInfoEnabled()) { - log.info(String.format("Try to update database (current database location: %s), using update url: %s", current, url)); - } - up.update(url, - current.getParentFile(), - dest, - false, - new TuttiDatabaseUpdaterCallBack(context, current)); - } } \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-02-06 00:47:07 UTC (rev 342) @@ -24,15 +24,20 @@ * #L% */ +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; +import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationUpdater; +import org.nuiton.util.Version; +import java.io.File; +import java.io.IOException; import java.util.Map; /** - * CallBack to update jre and/or tutti-app. + * CallBack to update jre, application, i18n or db. * * @author tchemit <chemit@codelutin.com> * @since 1.0 @@ -43,23 +48,40 @@ private static final Log log = LogFactory.getLog(TuttiApplicationUpdaterCallBack.class); - public static final String TUTTI = "tutti"; + enum UpdateType { + JRE, + TUTTI, + I18N, + DB + } - public static final String JRE = "jre"; + protected final TuttiUIContext context; + protected final UpdateType[] types; + + public TuttiApplicationUpdaterCallBack(TuttiUIContext context, + UpdateType... types) { + this.context = context; + this.types = types; + } + @Override public Map<String, ApplicationUpdater.ApplicationInfo> updateToDo(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) { Map<String, ApplicationUpdater.ApplicationInfo> result = Maps.newHashMap(); - ApplicationUpdater.ApplicationInfo applicationInfo; - applicationInfo = getJreApplicationInfo(appToUpdate); - if (applicationInfo != null) { - result.put(JRE, applicationInfo); + for (UpdateType type : types) { + ApplicationUpdater.ApplicationInfo info = getInfo(type, appToUpdate); + if (info != null) { + result.put(info.name, info); + if (UpdateType.DB.equals(type)) { + // add auth + info.setAuthentication( + "t" + "u" + "t" + "t" + "i" + "d" + "b", + new char[]{'3', 'R', 'A', 'C', 'e', 'v', '2', 'N', 'w', '8', 'u', 'E', 'D', 'E', 'v', 's', 'y', '0', 'v', 'J'} + ); + } + } } - applicationInfo = getTuttiAppApplicationInfo(appToUpdate); - if (applicationInfo != null) { - result.put(TUTTI, applicationInfo); - } return result; } @@ -67,16 +89,37 @@ public void updateDone(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate, Map<String, Exception> appUpdateError) { + boolean doRestart = updateDoneJre(appToUpdate, appUpdateError); + + doRestart |= updateDoneTutti(appToUpdate, appUpdateError); + doRestart |= updateDoneI18n(appToUpdate, appUpdateError); + + updateDoneDb(appToUpdate, appUpdateError); + + if (doRestart) { + System.exit(RunTutti.UPATE_EXIT_CODE); + } + } + + @Override + public void aborted(String propertiesURL, Exception eee) { + if (log.isErrorEnabled()) { + log.error("Could not update from " + propertiesURL, eee); + } + } + + protected boolean updateDoneJre(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate, + Map<String, Exception> appUpdateError) { boolean doRestart = false; - if (appUpdateError.containsKey(JRE)) { + Exception error = getError(UpdateType.JRE, appUpdateError); + if (error != null) { // something bad while updating jre if (log.isErrorEnabled()) { - log.error("Could not update jre", - appUpdateError.get(JRE)); + log.error("Could not update jre", error); } } else { - ApplicationUpdater.ApplicationInfo info = getJreApplicationInfo(appToUpdate); + ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.JRE, appToUpdate); if (info != null) { if (log.isInfoEnabled()) { @@ -86,18 +129,22 @@ } doRestart = true; } - } + return doRestart; + } - if (appUpdateError.containsKey(TUTTI)) { + protected boolean updateDoneTutti(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate, + Map<String, Exception> appUpdateError) { + boolean doRestart = false; + Exception error = getError(UpdateType.TUTTI, appUpdateError); + if (error != null) { // something bad while updating application if (log.isErrorEnabled()) { - log.error("Could not update tutti", - appUpdateError.get(TUTTI)); + log.error("Could not update tutti", error); } } else { - ApplicationUpdater.ApplicationInfo info = getTuttiAppApplicationInfo(appToUpdate); + ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.TUTTI, appToUpdate); if (info != null) { if (log.isInfoEnabled()) { @@ -108,24 +155,108 @@ doRestart = true; } } + return doRestart; + } - if (doRestart) { - System.exit(RunTutti.UPATE_EXIT_CODE); + protected boolean updateDoneI18n(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate, + Map<String, Exception> appUpdateError) { + boolean doRestart = false; + Exception error = getError(UpdateType.I18N, appUpdateError); + if (error != null) { + + // something bad while updating i18n + if (log.isErrorEnabled()) { + log.error("Could not update i18n", error); + } + } else { + ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.I18N, appToUpdate); + if (info != null) { + + if (log.isInfoEnabled()) { + log.info(String.format( + "A i18n update was downloaded (oldVersion: %s, newVersion: %s), will restart application to use it", + info.oldVersion, info.newVersion)); + } + doRestart = true; + } } + return doRestart; } - @Override - public void aborted(String propertiesURL, Exception eee) { - if (log.isErrorEnabled()) { - log.error("Could not update from " + propertiesURL, eee); + protected void updateDoneDb(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate, + Map<String, Exception> appUpdateError) { + Exception error = getError(UpdateType.DB, appUpdateError); + if (error != null) { + + // something bad while updating db + if (log.isErrorEnabled()) { + log.error("Could not update db", error); + } + } else { + ApplicationUpdater.ApplicationInfo info = getInfo(UpdateType.DB, appToUpdate); + if (info != null) { + + if (log.isInfoEnabled()) { + log.info(String.format( + "A db update was downloaded (oldVersion: %s, newVersion: %s), will process it.", + info.oldVersion, info.newVersion)); + } + if (Version.VZERO.toString().equals(info.oldVersion)) { + + // first database, just copy it to correct directory + + prepareFirstDatabase(info); + } else { + + // launch a referential synchronize operation + synchronizetDatabase(info); + } + } } } - protected ApplicationUpdater.ApplicationInfo getJreApplicationInfo(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) { - return appToUpdate.get(JRE); + protected ApplicationUpdater.ApplicationInfo getInfo(UpdateType type, + Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) { + return appToUpdate.get(type.name().toLowerCase()); } - protected ApplicationUpdater.ApplicationInfo getTuttiAppApplicationInfo(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) { - return appToUpdate.get(TUTTI); + protected Exception getError(UpdateType type, + Map<String, Exception> appUpdateError) { + return appUpdateError.get(type.name().toLowerCase()); } + + protected void prepareFirstDatabase(ApplicationUpdater.ApplicationInfo info) { + //TODO copie base au bon endroit pour utilisation directe + if (log.isInfoEnabled()) { + log.info("First time database was downloaded at version: " + info.newVersion); + } + + File[] sources = info.destDir.listFiles(); + Preconditions.checkState( + sources != null && sources.length == 1, + "Downloaded db should contains one directory at " + info.destDir); + File source = sources[0]; + File target = context.getConfig().getServiceConfig().getPersistenceConfig().getDbDirectory(); + if (log.isInfoEnabled()) { + log.info("Copy from " + source + " to " + target); + } + try { + FileUtils.copyDirectory(source, target); + } catch (IOException e) { + throw new RuntimeException("Could not copy directory content from " + source + " to " + target, e); + } + try { + FileUtils.deleteDirectory(source.getParentFile()); + } catch (IOException e) { + throw new RuntimeException("Could not delete temporary directory " + target, e); + } + + } + + protected void synchronizetDatabase(ApplicationUpdater.ApplicationInfo info) { + //TODO synchro referential + if (log.isInfoEnabled()) { + log.info(String.format("A database update was downloaded (oldVersion: %s, newVersion: %s), will launch a referential synchronize operation ", info.oldVersion, info.newVersion)); + } + } } Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDatabaseUpdaterCallBack.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDatabaseUpdaterCallBack.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDatabaseUpdaterCallBack.java 2013-02-06 00:47:07 UTC (rev 342) @@ -1,146 +0,0 @@ -package fr.ifremer.tutti.ui.swing; - -/* - * #%L - * Tutti :: UI - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 - 2013 Ifremer - * %% - * 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% - */ - -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; -import org.apache.commons.io.FileUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.util.ApplicationUpdater; -import org.nuiton.util.Version; - -import java.io.File; -import java.io.IOException; -import java.util.Map; - -/** - * CallBack to update tutti. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.0 - */ -public class TuttiDatabaseUpdaterCallBack implements ApplicationUpdater.ApplicationUpdaterCallback { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(TuttiDatabaseUpdaterCallBack.class); - - public static final String APP_KEY = "db"; - - protected final TuttiUIContext context; - - public TuttiDatabaseUpdaterCallBack(TuttiUIContext context, File current) { - this.context = context; - } - - @Override - public Map<String, ApplicationUpdater.ApplicationInfo> updateToDo(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate) { - Map<String, ApplicationUpdater.ApplicationInfo> result = Maps.newHashMap(); - - ApplicationUpdater.ApplicationInfo applicationInfo; - applicationInfo = appToUpdate.get(APP_KEY); - if (applicationInfo != null) { - result.put(APP_KEY, applicationInfo); - applicationInfo.setAuthentication( - "t" + "u" + "t" + "t" + "i" + "d" + "b", - new char[]{'3', 'R', 'A', 'C', 'e', 'v', '2', 'N', 'w', '8', 'u', 'E', 'D', 'E', 'v', 's', 'y', '0', 'v', 'J'}); - } - return result; - } - - @Override - public void updateDone(Map<String, ApplicationUpdater.ApplicationInfo> appToUpdate, - Map<String, Exception> appUpdateError) { - - if (appUpdateError.containsKey(APP_KEY)) { - - // something bad while updating jre - if (log.isErrorEnabled()) { - log.error("Could not update database", - appUpdateError.get(APP_KEY)); - } - } else { - ApplicationUpdater.ApplicationInfo info = appToUpdate.get(APP_KEY); - if (info != null) { - - - if (Version.VZERO.toString().equals(info.oldVersion)) { - - // first database, just copy it to correct directory - - prepareFirstDatabase(info); - } else { - - // launch a referential synchronize operation - synchronizetDatabase(info); - } - } - } - } - - @Override - public void aborted(String propertiesURL, Exception eee) { - if (log.isErrorEnabled()) { - log.error("Could not update from " + propertiesURL, eee); - } - } - - protected void prepareFirstDatabase(ApplicationUpdater.ApplicationInfo info) { - //TODO copie base au bon endroit pour utilisation directe - if (log.isInfoEnabled()) { - log.info("First time database was downloaded at version: " + info.newVersion); - } - - File[] sources = info.destDir.listFiles(); - Preconditions.checkState( - sources != null && sources.length == 1, - "Downloaded db should contains one directory at " + info.destDir); - File source = sources[0]; - File target = context.getConfig().getServiceConfig().getPersistenceConfig().getDbDirectory(); - if (log.isInfoEnabled()) { - log.info("Copy from " + source + " to " + target); - } - try { - FileUtils.copyDirectory(source, target); - } catch (IOException e) { - throw new RuntimeException("Could not copy directory content from " + source + " to " + target, e); - } - try { - FileUtils.deleteDirectory(source.getParentFile()); - } catch (IOException e) { - throw new RuntimeException("Could not delete temporary directory " + target, e); - } - - } - - protected void synchronizetDatabase(ApplicationUpdater.ApplicationInfo info) { - //TODO synchro referential - if (log.isInfoEnabled()) { - log.info(String.format("A database update was downloaded (oldVersion: %s, newVersion: %s), will launch a referential synchronize operation ", info.oldVersion, info.newVersion)); - } - } - -} Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-02-06 00:47:07 UTC (rev 342) @@ -68,6 +68,12 @@ CLONE_PROTOCOL, /** + * To open import temporary referential. + * + * @since 1.0 + */ + IMPORT_TEMPORARY_REFERENTIAL, + /** * To fill catches. * * @since 0.1 Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-02-06 00:47:07 UTC (rev 342) @@ -320,13 +320,24 @@ File i18nDirectory = config.getI18nDirectory(); if (!config.isFullLaunchMode()) { - // clean i18n cache - try { - FileUtils.cleanDirectory(i18nDirectory); - } catch (IOException e) { - throw new RuntimeException("Could not delete i18n cache at " + i18nDirectory, e); + i18nDirectory = new File(config.getDataDirectory(), "i18n"); + + if (i18nDirectory.exists()) { + // clean i18n cache + try { + FileUtils.cleanDirectory(i18nDirectory); + } catch (IOException e) { + throw new RuntimeException("Could not delete i18n cache at " + i18nDirectory, e); + } } } + + try { + FileUtils.forceMkdir(i18nDirectory); + } catch (IOException e) { + throw new RuntimeException("Could not create i18n at " + i18nDirectory, e); + } + Locale i18nLocale = config.getI18nLocale(); if (log.isInfoEnabled()) { Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,55 @@ +package fr.ifremer.tutti.ui.swing; + +import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationUpdater; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * To update + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class UpdateReferentialAction extends AbstractTuttiAction<TuttiUIContext, MainUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(UpdateReferentialAction.class); + + public UpdateReferentialAction(MainUIHandler handler) { + super(handler, + "updateReferential", + "update-referential", + _("tutti.action.updateReferential"), + _("tutti.action.updateReferential.tip"), + false); + } + + @Override + protected void doAction(ActionEvent event) throws Exception { + TuttiApplicationConfig config = getContext().getConfig(); + + File current = config.getTuttiBasedir(); + String url = config.getUpdateUrl(); + + if (log.isInfoEnabled()) { + log.info(String.format("Try to update db (current application location: %s), using update url: %s", current, url)); + } + ApplicationUpdater up = new ApplicationUpdater(); + + File dest = new File(config.getTuttiBasedir(), "NEW"); + up.update(url, + current, + dest, + false, + new TuttiApplicationUpdaterCallBack(getContext(), TuttiApplicationUpdaterCallBack.UpdateType.DB)); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-02-06 00:47:07 UTC (rev 342) @@ -282,11 +282,8 @@ return applicationConfig.getOptionAsFile(TuttiApplicationConfigOption.TUTTI_APPLICATION_BASEDIR.getKey()); } - public String getApplicationUpdateUrl() { - return applicationConfig.getOption(TuttiApplicationConfigOption.TUTTI_UPDATE_APPLICATION_URL.getKey()); + public String getUpdateUrl() { + return applicationConfig.getOption(TuttiApplicationConfigOption.TUTTI_UPDATE_URL.getKey()); } - public String getDatabaseUpdateUrl() { - return applicationConfig.getOption(TuttiApplicationConfigOption.TUTTI_UPDATE_DATABASE_URL.getKey()); - } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-02-06 00:47:07 UTC (rev 342) @@ -63,7 +63,7 @@ TUTTI_I18N_DIRECTORY( "tutti.i18n.directory", n_("tutti.option.i18n.directory.description"), - "${tutti.config.directory}/i18n", + "${tutti.application.basedir}/i18n", File.class ), @@ -74,24 +74,15 @@ Locale.class ), - TUTTI_UPDATE_APPLICATION_URL( + TUTTI_UPDATE_URL( "tutti.update.application.url", - n_("tutti.option.update.application.url.description"), + n_("tutti.option.update.url.description"), null, String.class, true, false ), - TUTTI_UPDATE_DATABASE_URL( - "tutti.update.database.url", - n_("tutti.option.update.database.url.description"), - null, - String.class, - true, - false - ), - UI_CONFIG_FILE( "tutti.ui.config.file", n_("tutti.option.ui.config.file.description"), @@ -154,7 +145,7 @@ new Color(128, 255, 128).toString(), Color.class ), - + COLOR_ROW_TO_CONFIRM( "tutti.ui.color.rowToConfirm", n_("tutti.option.ui.color.rowToConfirm.description"), Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Export an example file of temporary gears referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ExportTemporaryGearExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ExportTemporaryGearExampleAction.class); + + private File file; + + public ExportTemporaryGearExampleAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "exportTemporaryGearExample", + "export", + _("tutti.action.exportTemporaryGearExample"), + _("tutti.action.exportTemporaryGearExample.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to export + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.exportTemporaryGearExampleFile"), + _("tutti.action.chooseReferentialGearFile"), + null, + "^.*\\.csv", _("tutti.file.csv") + ); + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will export example gears temporary " + + "referential to file: " + file); + } + + getHandler().persistenceService.exportTemporaryGearExample(file); + + sendMessage("Exemple de référentiel temporaire d'engins exporté " + + "dans le fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Export an example file of temporary person referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ExportTemporaryPersonExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ExportTemporaryPersonExampleAction.class); + + private File file; + + public ExportTemporaryPersonExampleAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "exportTemporaryPersonExample", + "export", + _("tutti.action.exportTemporaryPersonExample"), + _("tutti.action.exportTemporaryPersonExample.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to export + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.exportTemporaryPersonExampleFile"), + _("tutti.action.chooseReferentialPersonFile"), + null, + "^.*\\.csv", _("tutti.file.csv") + ); + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will export example persons temporary " + + "referential to file: " + file); + } + + getHandler().persistenceService.exportTemporaryPersonExample(file); + + sendMessage("Exemple de référentiel temporaire de personnes exporté " + + "dans le fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Export an example file of temporary species referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ExportTemporarySpeciesExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ExportTemporarySpeciesExampleAction.class); + + private File file; + + public ExportTemporarySpeciesExampleAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "exportTemporarySpeciesExample", + "export", + _("tutti.action.exportTemporarySpeciesExample"), + _("tutti.action.exportTemporarySpeciesExample.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to export + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.exportTemporarySpeciesExampleFile"), + _("tutti.action.chooseReferentialSpeciesFile"), + null, + "^.*\\.csv", _("tutti.file.csv") + ); + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will export example species temporary " + + "referential to file: " + file); + } + + getHandler().persistenceService.exportTemporarySpeciesExample(file); + + sendMessage("Exemple de référentiel temporaire d'espèces exporté " + + "dans le fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Export an example file of temporary species referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ExportTemporaryVesselExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ExportTemporaryVesselExampleAction.class); + + private File file; + + public ExportTemporaryVesselExampleAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "exportTemporaryVesselExample", + "export", + _("tutti.action.exportTemporaryVesselExample"), + _("tutti.action.exportTemporaryVesselExample.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to export + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.exportTemporaryVesselExampleFile"), + _("tutti.action.chooseReferentialVesselFile"), + null, + "^.*\\.csv", _("tutti.file.csv") + ); + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will export example vessels temporary " + + "referential to file: " + file); + } + + getHandler().persistenceService.exportTemporaryVesselExample(file); + + sendMessage("Exemple de référentiel temporaire de navires exporté " + + "dans le fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Import temporary gear referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ImportTemporaryGearAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ImportTemporaryGearAction.class); + + private File file; + + public ImportTemporaryGearAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "importTemporaryGear", + "import", + _("tutti.action.importTemporaryGear"), + _("tutti.action.importTemporaryGear.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to import + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.importTemporaryGearFile"), + _("tutti.action.chooseReferentialGearFile"), + null, + "^.*\\.csv", _("tutti.file.csv")); + + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will import gear temporary " + + "referential from file: " + file); + } + + getHandler().persistenceService.importTemporaryGear(file); + + sendMessage("Référentiel temporaire d'engins importé depuis le " + + "fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Import temporary person referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ImportTemporaryPersonAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ImportTemporaryPersonAction.class); + + private File file; + + public ImportTemporaryPersonAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "importTemporaryPerson", + "import", + _("tutti.action.importTemporaryPerson"), + _("tutti.action.importTemporaryPerson.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to import + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.importTemporaryPersonFile"), + _("tutti.action.chooseReferentialPersonFile"), + null, + "^.*\\.csv", _("tutti.file.csv")); + + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will import person temporary " + + "referential from file: " + file); + } + + getHandler().persistenceService.importTemporaryPerson(file); + + sendMessage("Référentiel temporaire de personnes importé depuis le " + + "fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Import temporary species referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ImportTemporarySpeciesAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ImportTemporarySpeciesAction.class); + + private File file; + + public ImportTemporarySpeciesAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "importTemporarySpecies", + "import", + _("tutti.action.importTemporarySpecies"), + _("tutti.action.importTemporarySpecies.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to import + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.importTemporarySpeciesFile"), + _("tutti.action.chooseReferentialSpeciesFile"), + null, + "^.*\\.csv", _("tutti.file.csv")); + + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will import species temporary " + + "referential from file: " + file); + } + + getHandler().persistenceService.importTemporarySpecies(file); + + sendMessage("Référentiel temporaire d'espèces importé depuis le " + + "fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,77 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * Import temporary vessel referential. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ImportTemporaryVesselAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ImportTemporaryVesselAction.class); + + private File file; + + public ImportTemporaryVesselAction(ManageTemporaryReferentialUIHandler handler) { + super(handler, + "importTemporaryVessel", + "import", + _("tutti.action.importTemporaryVessel"), + _("tutti.action.importTemporaryVessel.tip"), + true + ); + } + + @Override + protected boolean prepareAction(ActionEvent event) { + + // choose file to import + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.importTemporaryVesselFile"), + _("tutti.action.chooseReferentialVesselFile"), + null, + "^.*\\.csv", _("tutti.file.csv")); + + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { + + if (log.isInfoEnabled()) { + log.info("Will import vessel temporary " + + "referential from file: " + file); + } + + getHandler().persistenceService.importTemporaryVessel(file); + + sendMessage("Référentiel temporaire de navires importé depuis le " + + "fichier " + file + "."); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css 2013-02-06 00:47:07 UTC (rev 342) @@ -1,23 +0,0 @@ -/* - * #%L - * Tutti :: UI - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 - 2013 Ifremer - * %% - * 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% - */ Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx 2013-02-06 00:47:07 UTC (rev 342) @@ -1,136 +0,0 @@ -<!-- - #%L - Tutti :: UI - $Id$ - $HeadURL$ - %% - Copyright (C) 2012 - 2013 Ifremer - %% - 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% - --> -<JPanel id='homePanel' layout='{new BorderLayout()}'> - <!--implements='fr.ifremer.tutti.ui.swing.TuttiUI<SelectCruiseUIModel, SelectCruiseUIHandler>'>--> - - <import> - - fr.ifremer.tutti.ui.swing.TuttiUI - fr.ifremer.tutti.ui.swing.TuttiUIContext - fr.ifremer.tutti.ui.swing.util.ActionListCellRenderer - - jaxx.runtime.validator.swing.SwingValidatorMessageTableModel - - static org.nuiton.i18n.I18n._ - </import> - - <!--<script><![CDATA[--> - - <!--protected TuttiUIContext uiContext;--> - - <!--public SelectCruiseUI(TuttiUI parentUI) {--> - <!--JAXXUtil.initContext(this, parentUI);--> - <!--uiContext = parentUI.getHandler().getContext();--> - <!--SelectCruiseUIHandler handler =--> - <!--new SelectCruiseUIHandler(parentUI, this);--> - <!--setContextValue(handler);--> - <!--handler.beforeInitUI();--> - <!--}--> - - <!--protected void $afterCompleteSetup() {--> - <!--handler.afterInitUI();--> - <!--}--> - <!--]]></script>--> - - <!--<SelectCruiseUIHandler id='handler'--> - <!--initializer='getContextValue(SelectCruiseUIHandler.class)'/>--> - - <!--<SelectCruiseUIModel id='model'--> - <!--initializer='getContextValue(SelectCruiseUIModel.class)'/>--> - - <SwingValidatorMessageTableModel id='errorTableModel'/> - - <!--<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'--> - <!--uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>--> - <!--<field name='program' component='programCombobox'/>--> - <!--<field name='cruise' component='cruiseCombobox'/>--> - <!--<field name='protocol' component='protocolCombobox'/>--> - <!--</BeanValidator>--> - - <!--<Table fill='both' constraints='BorderLayout.CENTER'>--> - <!--<row>--> - <!--<cell anchor='west'>--> - <!--<JLabel id='programLabel'/>--> - <!--</cell>--> - <!--<cell weightx='1.0'>--> - <!--<BeanComboBox id='programCombobox' constructorParams='this'--> - <!--genericType='Program'/>--> - <!--</cell>--> - <!--<cell>--> - <!--<JPanel layout='{new GridLayout(1,0)}'>--> - <!--<JButton id='editProgramButton'/>--> - <!--<!–onActionPerformed='handler.showSelectedProgram()'/>–>--> - <!--<JButton id='newProgramButton'/>--> - <!--<!–onActionPerformed='handler.showNewProgram()'/>–>--> - <!--</JPanel>--> - <!--</cell>--> - <!--</row>--> - <!--<row>--> - <!--<cell>--> - <!--<JLabel id='cruiseLabel'/>--> - <!--</cell>--> - <!--<cell>--> - <!--<BeanComboBox id='cruiseCombobox' constructorParams='this'--> - <!--genericType='Cruise'/>--> - <!--</cell>--> - <!--<cell>--> - <!--<JPanel layout='{new GridLayout(1,0)}'>--> - <!--<JButton id='editCruiseButton'/>--> - <!--<!–onActionPerformed='handler.showSelectedCruise()'/>–>--> - <!--<JButton id='newCruiseButton'/>--> - <!--<!–onActionPerformed='handler.showNewCruise()'/>–>--> - <!--</JPanel>--> - <!--</cell>--> - <!--</row>--> - <!--<row>--> - <!--<cell>--> - <!--<JLabel id='protocolLabel'/>--> - <!--</cell>--> - <!--<cell>--> - <!--<BeanComboBox id='protocolCombobox' constructorParams='this'--> - <!--genericType='TuttiProtocol'/>--> - <!--</cell>--> - <!--<cell>--> - <!--<JPanel layout='{new GridLayout(1,0)}'>--> - <!--<JComboBox id='editProtocolComboBox'--> - <!--onMouseEntered='if (editProtocolComboBox.isEnabled()) { editProtocolComboBox.showPopup(); }'--> - <!--onActionPerformed='handler.startExistingProtocolAction(event)'/>--> - <!--<JComboBox id='newProtocolComboBox'--> - <!--onMouseEntered='newProtocolComboBox.showPopup()'--> - <!--onActionPerformed='handler.startNewProtocolAction(event)'/>--> - <!--</JPanel>--> - <!--</cell>--> - <!--</row>--> - <!--<row>--> - <!--<cell columns='3'>--> - <!--<JPanel layout='{new GridLayout(1,0)}'>--> - <!--<JButton id='editCatchesButton'/>--> - <!--<!–onActionPerformed='handler.showFillCatches()'/>–>--> - <!--<JButton id='validateCatchesButton'/>--> - <!--<!–onActionPerformed='handler.showValidateCatches()'/>–>--> - <!--</JPanel>--> - <!--</cell>--> - <!--</row>--> - <!--</Table>--> -</JPanel> Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java 2013-02-06 00:47:07 UTC (rev 342) @@ -1,32 +0,0 @@ -package fr.ifremer.tutti.ui.swing.content.referential; - -/* - * #%L - * Tutti :: UI - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 - 2013 Ifremer - * %% - * 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% - */ - -/** - * @author tchemit <chemit@codelutin.com> - * @since 1.0 - */ -public class ManageReferentialUIHandler { -} Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css (from rev 335, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css) =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,79 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * 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% + */ + +#information { + actionIcon: information; + text: "tutti.information.import.temporary.referential"; +} +#speciesLabel { + text: "tutti.label.referential.species"; + icon: {SwingUtil.createImageIcon("action-species.gif")}; +} + +#exportSpeciesExampleButton { + _tuttiAction: {ExportTemporarySpeciesExampleAction.class}; +} + +#importSpeciesButton { + _tuttiAction: {ImportTemporarySpeciesAction.class}; +} + +#vesselLabel { + text: "tutti.label.referential.vessel"; + actionIcon: vessel; +} + +#exportVesselExampleButton { + _tuttiAction: {ExportTemporaryVesselExampleAction.class}; +} + +#importVesselButton { + _tuttiAction: {ImportTemporaryVesselAction.class}; +} + +#gearLabel { + text: "tutti.label.referential.gear"; + actionIcon: gear; +} + +#exportGearExampleButton { + _tuttiAction: {ExportTemporaryGearExampleAction.class}; +} + +#importGearButton { + _tuttiAction: {ImportTemporaryGearAction.class}; +} + +#personLabel { + text: "tutti.label.referential.person"; + actionIcon: person; +} + +#exportPersonExampleButton { + _tuttiAction: {ExportTemporaryPersonExampleAction.class}; +} + +#importPersonButton { + _tuttiAction: {ImportTemporaryPersonAction.class}; +} \ No newline at end of file Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx (from rev 335, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx) =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,124 @@ +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 - 2013 Ifremer + %% + 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% + --> +<JPanel id='manageTemporaryReferentialTopPanel' layout='{new BorderLayout()}' + implements='fr.ifremer.tutti.ui.swing.TuttiUI<TuttiUIContext, ManageTemporaryReferentialUIHandler>'> + + <import> + + fr.ifremer.tutti.ui.swing.TuttiUI + fr.ifremer.tutti.ui.swing.TuttiUIContext + + static org.nuiton.i18n.I18n._ + </import> + + <script><![CDATA[ + + public ManageTemporaryReferentialUI(TuttiUI parentUI) { + JAXXUtil.initContext(this, parentUI); + ManageTemporaryReferentialUIHandler handler = + new ManageTemporaryReferentialUIHandler(parentUI.getHandler().getContext(), this); + setContextValue(handler); + handler.beforeInitUI(); + } + + protected void $afterCompleteSetup() { + handler.afterInitUI(); + } + ]]></script> + + <ManageTemporaryReferentialUIHandler id='handler' + initializer='getContextValue(ManageTemporaryReferentialUIHandler.class)'/> + + <TuttiUIContext id='model' + initializer='getContextValue(TuttiUIContext.class)'/> + + <Table constraints='BorderLayout.CENTER'> + <row> + <cell> + <JLabel id='speciesLabel'/> + </cell> + <cell> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='exportSpeciesExampleButton'/> + <JButton id='importSpeciesButton'/> + </JPanel> + </cell> + </row> + + <row> + <cell columns='2' fill='both'> + <JSeparator/> + </cell> + </row> + + <row> + <cell> + <JLabel id='vesselLabel'/> + </cell> + <cell> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='exportVesselExampleButton'/> + <JButton id='importVesselButton'/> + </JPanel> + </cell> + </row> + + <row> + <cell columns='2' fill='both'> + <JSeparator/> + </cell> + </row> + + <row> + <cell> + <JLabel id='gearLabel'/> + </cell> + <cell> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='exportGearExampleButton'/> + <JButton id='importGearButton'/> + </JPanel> + </cell> + </row> + + <row> + <cell columns='2' fill='both'> + <JSeparator/> + </cell> + </row> + + <row> + <cell> + <JLabel id='personLabel'/> + </cell> + <cell> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='exportPersonExampleButton'/> + <JButton id='importPersonButton'/> + </JPanel> + </cell> + </row> + + </Table> +</JPanel> Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java (from rev 335, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java) =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java 2013-02-06 00:47:07 UTC (rev 342) @@ -0,0 +1,86 @@ +package fr.ifremer.tutti.ui.swing.content.referential; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * 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% + */ + +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JComponent; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class ManageTemporaryReferentialUIHandler extends AbstractTuttiUIHandler<TuttiUIContext> { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(ManageTemporaryReferentialUIHandler.class); + + protected ManageTemporaryReferentialUI ui; + + protected JComponent currentBody; + + protected final PersistenceService persistenceService; + + protected ManageTemporaryReferentialUIHandler(TuttiUIContext context, ManageTemporaryReferentialUI ui) { + super(context); + this.ui = ui; + this.persistenceService = context.getService(PersistenceService.class); + } + + //------------------------------------------------------------------------// + //-- AbstractTuttiUIHandler methods --// + //------------------------------------------------------------------------// + + @Override + public void beforeInitUI() { + } + + @Override + public void afterInitUI() { + + initUI(ui); + } + + @Override + public void onCloseUI() { + + } + + @Override + public TuttiUIContext getModel() { + return ui.getModel(); + } + + @Override + public SwingValidator<TuttiUIContext> getValidator() { + return null; + } +} \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 21:53:25 UTC (rev 341) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-06 00:47:07 UTC (rev 342) @@ -18,6 +18,10 @@ tutti.action.chooseProtocolCaracteristicFile=Choisir le fichier des caractéristiques tutti.action.chooseProtocolFile=Choisir le fichier de protocole tutti.action.chooseProtocolSpeciesFile=Choisir le fichier des espèces +tutti.action.chooseReferentialGearFile=Choisir le fichier de référentiel engin +tutti.action.chooseReferentialPersonFile=Choisir le fichier de référentiel personne +tutti.action.chooseReferentialSpeciesFile=Choisir le fichier de référentiel espèce +tutti.action.chooseReferentialVesselFile=Choisir le fichier de référentiel navire tutti.action.cloneProtocol=Cloner tutti.action.cloneProtocol.tip=Dupliquer le protocole sélectionné tutti.action.close=Fermer @@ -50,6 +54,14 @@ tutti.action.exportProtocolCaracteristic.tip=Exporter les caractéristiques du protocole tutti.action.exportProtocolSpecies=Exporter les espèces tutti.action.exportProtocolSpecies.tip=Exporter les espèces du protocole +tutti.action.exportTemporaryGearExample=Exporter +tutti.action.exportTemporaryGearExample.tip=Exporter un exemple de référentiel Engin +tutti.action.exportTemporaryPersonExample=Exporter +tutti.action.exportTemporaryPersonExample.tip=Exporter un exemple de référentiel Personne +tutti.action.exportTemporarySpeciesExample=Exporter +tutti.action.exportTemporarySpeciesExample.tip=Exporter un exemple de référentiel Espèces +tutti.action.exportTemporaryVesselExample=Exporter +tutti.action.exportTemporaryVesselExample.tip=Exporter un exemple de référentiel Navire tutti.action.generate=Générer tutti.action.generateCampaignName=Générer le nom tutti.action.importCasino=Import Casino @@ -62,6 +74,16 @@ tutti.action.importProtocolSpecies.tip=importer les espèces dans le protocole tutti.action.importPupitri=Import Pupitri tutti.action.importPupitri.tip=Import Pupitri +tutti.action.importTemporaryGear=Importer +tutti.action.importTemporaryGear.tip=Importer un référentiel temporaire d'engins +tutti.action.importTemporaryPerson=Importer +tutti.action.importTemporaryPerson.tip=Importer un référentiel temporaire de personnes +tutti.action.importTemporaryReferential=Référentiels temporaires +tutti.action.importTemporaryReferential.tip=Importer des référentiels temporaires +tutti.action.importTemporarySpecies=Importer +tutti.action.importTemporarySpecies.tip=Importer un référentiel temporaire d'espèces +tutti.action.importTemporaryVessel=Importer +tutti.action.importTemporaryVessel.tip=Importer un référentiel temporaire de navires tutti.action.new=Nouveau tutti.action.newCruise=Nouveau tutti.action.newCruise.tip=Créer une nouvelle campagne @@ -99,6 +121,8 @@ tutti.action.site.tip=Accéder au site du projet Tutti tutti.action.splitSpeciesBatch=Catégoriser le lot tutti.action.splitSpeciesBatch.tip=Catégoriser le lot courant (celui de la ligne sélectionné) +tutti.action.updateReferential=Mettre à jour +tutti.action.updateReferential.tip=Mettre à jour les référentiels tutti.action.validate=Valider tutti.action.validateCatches=Valider les captures tutti.action.validateCatches.tip=Valider les captures @@ -118,6 +142,7 @@ tutti.errorTable.title=Rapport de contrôles tutti.file.csv=Extension d'un fichier csv tutti.file.protocol=Extension d'un fichier de protocole Tutti +tutti.information.import.temporary.referential=Vous pouvez ici importer des référentiels temporaires tutti.label.attachmentEditor.file=Fichier tutti.label.attachmentEditor.fileComment=Commentaire tutti.label.attachmentEditor.fileName=Nom @@ -214,6 +239,10 @@ tutti.label.program.name=Nom tutti.label.program.zone=Zone tutti.label.protocol=Protocol de saisie +tutti.label.referential.gear=Référentiel Engin +tutti.label.referential.person=Référentiel Personne +tutti.label.referential.species=Référentiel Espèce +tutti.label.referential.vessel=Référentiel Navire tutti.label.sampleCategoryConfiguration.batchWeight=Poids total à catégoriser tutti.label.sampleCategoryConfiguration.category=Catégorie tutti.label.sampleCategoryConfiguration.sample=Echantillon ? @@ -255,6 +284,8 @@ tutti.menu.file.tip=Fichier tutti.menu.help=Aide tutti.menu.help.tip=Aide +tutti.menu.referential=Référentiels +tutti.menu.referential.tip=Gestion des référentiels tutti.menu.synchronisationAllegro=Allégro tutti.menu.synchronisationAllegro.tip=Synchronisation Allégro tutti.menu.synchronisationExport=Export @@ -281,8 +312,7 @@ tutti.option.ui.dateFormat.description=Format de dates tutti.option.ui.shortcut.closePopup.description=Fermer une popup tutti.option.ui.showNumberEditorButton.description=Afficher le pavé numérique de saisie -tutti.option.update.application.url.description=URL de mise à jour de la jre et de l'application -tutti.option.update.database.url.description=URL de mise à jour de la base de données +tutti.option.update.url.description=URL de mise à jour tutti.sampleCategoryType.age=Age tutti.sampleCategoryType.maturity=Maturité tutti.sampleCategoryType.sex=Sexe @@ -364,6 +394,14 @@ tutti.table.species.sampleCategory.header.weight=Poids (kg) tutti.timeeditor.H=H tutti.title.about=À propos de Tutti +tutti.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin +tutti.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne +tutti.title.choose.exportTemporarySpeciesExampleFile=Exporter un exemple de référentiel Espèce +tutti.title.choose.exportTemporaryVesselExampleFile=Exporter un exemple de référentiel Navire +tutti.title.choose.importTemporaryGearFile=Importer un réferentiel Engin +tutti.title.choose.importTemporaryPersonFile=Importer un réferentiel Personne +tutti.title.choose.importTemporarySpeciesFile=Importer un réferentiel Espèce +tutti.title.choose.importTemporaryVesselFile=Importer un réferentiel Navire tutti.title.choose.protocolCaracteristicExportFile=Exporter les caractéristiques tutti.title.choose.protocolCaracteristicImportFile=Importer les caractéristiques tutti.title.choose.protocolExportFile=Exporter le protocole @@ -379,6 +417,7 @@ tutti.title.edit.protocol=Éditer un protocol de saisie existant tutti.title.editFrequency=Mensuration tutti.title.home=Sélection de la campagne +tutti.title.import.temporary.referential=importer des référentiels temporaires tutti.title.noSelectedCruise=Pas de campagne sélectionné tutti.title.noSelectedProgram=Pas de série de campagne sélectionné tutti.title.noSelectedProtocol=Pas de protocol sélectionné Added: trunk/tutti-ui-swing/src/main/resources/icons/action-species.gif =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-species.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-temporary-referential-import.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-temporary-referential-import.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: trunk/tutti-ui-swing/src/main/resources/icons/action-update-referential.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-update-referential.png ___________________________________________________________________ Added: svn:mime-type + image/png
participants (1)
-
tchemit@users.forge.codelutin.com