This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 10f59f14423b8eb8395f436e79049253aef373dd Author: Kevin Morin <morin@codelutin.com> Date: Fri Oct 24 17:38:58 2014 +0200 refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires --- .../tutti/persistence/entities/TuttiEntity.java | 4 ++ .../persistence/entities/TuttiEntityBean.java | 5 +++ .../service/ReferentialPersistenceServiceImpl.java | 30 ++++++++++---- .../tutti/service/referential/GearModel.java | 5 ++- .../tutti/service/referential/PersonModel.java | 6 ++- .../referential/ReferentialImportService.java | 48 ++++++++++++++++++++-- .../tutti/service/referential/SpeciesModel.java | 9 +++- .../tutti/service/referential/VesselModel.java | 4 +- .../resources/i18n/tutti-service_en_GB.properties | 2 + .../resources/i18n/tutti-service_fr_FR.properties | 2 + .../referential/ReferentialImportServiceTest.java | 24 +++++++++++ .../action/ExportExistingTemporaryGearAction.java | 4 +- .../ExportExistingTemporaryPersonAction.java | 4 +- .../ExportExistingTemporarySpeciesAction.java | 4 +- .../ExportExistingTemporaryVesselAction.java | 4 +- .../catches/species/SpeciesBatchRowModel.java | 1 - .../ui/swing/util/AbstractTuttiBeanUIModel.java | 5 +++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 8 ++++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 8 ++++ 19 files changed, 150 insertions(+), 27 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java index c2136a8..edacfe2 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntity.java @@ -34,12 +34,16 @@ public interface TuttiEntity extends Serializable { public static final String PROPERTY_ID = "id"; + public static final String PROPERTY_ID_AS_INT = "idAsInt"; + String getId(); void setId(String id); Integer getIdAsInt(); + void setIdAsInt(Integer idAsInt); + void setId(Integer id); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java index b110487..7cae605 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java @@ -70,6 +70,11 @@ public abstract class TuttiEntityBean implements Serializable, TuttiEntity { } @Override + public void setIdAsInt(Integer idAsInt) { + setId(idAsInt); + } + + @Override public boolean equals(Object o) { if (this == o) { return true; diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java index 2db70c7..005d110 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java @@ -45,7 +45,9 @@ import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId; import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; import fr.ifremer.adagio.core.dao.referential.pmfm.UnitId; +import fr.ifremer.adagio.core.dao.referential.taxon.TaxonName; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao; +import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameImpl; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO; import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeId; import fr.ifremer.adagio.core.dao.technical.hibernate.TemporaryDataHelper; @@ -705,9 +707,9 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic @Override public boolean isTemporary(TuttiReferentialEntity entity) { Preconditions.checkNotNull(entity); + Preconditions.checkNotNull(entity.getId()); Preconditions.checkNotNull(entity.getStatus()); - return StatusCode.TEMPORARY.getValue().equals( - entity.getStatus().getId()); + return StatusCode.TEMPORARY.getValue().equals(entity.getStatus().getId()) && entity.getIdAsInt() < 0; } @Override @@ -1062,15 +1064,27 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic protected Species importTemporarySpecies(Species source) { Preconditions.checkNotNull(source); Preconditions.checkNotNull(source.getName()); + Preconditions.checkArgument(source.getIdAsInt() == null || source.getIdAsInt() < 0); - TaxonRefVO taxonName = new TaxonRefVO(); - taxonName.setName(source.getName()); - taxonName = taxonNameDao.createAsTemporary( - taxonName, - "Added by tutti (file import)."); + TaxonRefVO taxonRefVO = null; + if (source.getId() != null) { + taxonRefVO = taxonNameDao.getTaxonNameReferent(source.getIdAsInt()); + } + if (taxonRefVO == null) { + taxonRefVO = new TaxonRefVO(); + taxonRefVO.setName(source.getName()); + taxonRefVO = taxonNameDao.createAsTemporary( + taxonRefVO, + "Added by tutti (file import)."); + } else { + TaxonName taxonName = load(TaxonNameImpl.class, taxonRefVO.getTaxonNameId()); + taxonName.setName(source.getName()); + taxonRefVO.setName(source.getName()); + taxonNameDao.update(taxonName); + } // update the source - Species result = loadSpecies(taxonName); + Species result = loadSpecies(taxonRefVO); result.setRefTaxCode(result.getExternalCode()); // Add to cache diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java index b52faef..cef5773 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java @@ -32,6 +32,7 @@ import java.text.ParseException; import java.util.Set; import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Model to import / export {@link Gear} in csv format. @@ -46,7 +47,7 @@ public class GearModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Gear> // import definition - newMandatoryColumn(Gear.PROPERTY_ID, new Common.IntegerParserFormatter(null, true) { + newMandatoryColumn(Gear.PROPERTY_ID, Gear.PROPERTY_ID_AS_INT, new Common.IntegerParserFormatter(null, true) { @Override public Integer parse(String value) throws ParseException { @@ -58,7 +59,7 @@ public class GearModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Gear> // must also be negative value if (parse >= 0) { - throw new IllegalArgumentException("Id of a temporary gear must be negative, but was: " + parse); + throw new IllegalArgumentException(t("tutti.service.referential.import.gear.idNotNegative.error", parse)); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java index 6c9a4e7..80b4530 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java @@ -29,6 +29,8 @@ import org.nuiton.csv.Common; import java.text.ParseException; +import static org.nuiton.i18n.I18n.t; + /** * Model to import / export {@link Person} in csv format. * @@ -42,7 +44,7 @@ public class PersonModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Per // import definition - newMandatoryColumn(Person.PROPERTY_ID, new Common.IntegerParserFormatter(null, true) { + newMandatoryColumn(Person.PROPERTY_ID, Person.PROPERTY_ID_AS_INT, new Common.IntegerParserFormatter(null, true) { @Override public Integer parse(String value) throws ParseException { @@ -54,7 +56,7 @@ public class PersonModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Per // must also be negative value if (parse >= 0) { - throw new IllegalArgumentException("Id of a temporary person must be negative, but was: " + parse); + throw new IllegalArgumentException(t("tutti.service.referential.import.person.idNotNegative.error", parse)); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java index 46ff4cd..7f58bed 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportService.java @@ -28,6 +28,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; @@ -46,11 +47,13 @@ import org.nuiton.csv.Export; import org.nuiton.csv.Import; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.jaxx.application.ApplicationTechnicalException; +import org.springframework.dao.DataRetrievalFailureException; import java.io.BufferedWriter; import java.io.File; import java.io.IOException; import java.io.Reader; +import java.util.HashSet; import java.util.List; import java.util.Set; @@ -82,14 +85,18 @@ public class ReferentialImportService extends AbstractTuttiService { log.info("Will import species from file: " + file); } + List<Species> allSpecies = persistenceService.getAllSpecies(); + // get all species names - Set<String> existingSpeciesName = Sets.newHashSet(Iterables.transform(persistenceService.getAllSpecies(), new Function<Species, String>() { + Set<String> existingSpeciesName = Sets.newHashSet(Iterables.transform(allSpecies, new Function<Species, String>() { @Override public String apply(Species input) { return input.getName(); } })); + List<String> existingSpeciesIds = TuttiEntities.toIds(allSpecies); + List<Species> toImport = Lists.newArrayList(); Reader reader = Files.newReader(file, Charsets.UTF_8); @@ -100,6 +107,12 @@ public class ReferentialImportService extends AbstractTuttiService { try { for (Species bean : importer) { + + String id = bean.getId(); + if (id != null && !existingSpeciesIds.add(id)) { + throw new IllegalArgumentException(t("tutti.service.referential.import.species.notExistingId.error", id)); + } + toImport.add(bean); } importer.close(); @@ -125,8 +138,7 @@ public class ReferentialImportService extends AbstractTuttiService { IOUtils.closeQuietly(reader); } - List<Species> result = - persistenceService.importTemporarySpecies(toImport); + List<Species> result = persistenceService.importTemporarySpecies(toImport); return result; } @@ -193,6 +205,9 @@ public class ReferentialImportService extends AbstractTuttiService { log.info("Will import persons from file: " + file); } + List<Person> allPersons = persistenceService.getAllPerson(); + List<String> existingPersonIds = TuttiEntities.toIds(allPersons); + List<Person> toImport = Lists.newArrayList(); Reader reader = Files.newReader(file, Charsets.UTF_8); @@ -203,13 +218,21 @@ public class ReferentialImportService extends AbstractTuttiService { try { for (Person bean : importer) { + + String id = bean.getId(); + if (id != null && !existingPersonIds.add(id)) { + throw new IllegalArgumentException(t("tutti.service.referential.import.person.notExistingId.error", id)); + } + toImport.add(bean); } importer.close(); + } finally { IOUtils.closeQuietly(importer); } reader.close(); + } catch (IOException e) { throw new IOException(t("tutti.service.referential.import.persons.error", file), e); } finally { @@ -241,6 +264,20 @@ public class ReferentialImportService extends AbstractTuttiService { } })); + Set<String> existingGearIds = Sets.newHashSet(Iterables.transform(persistenceService.getAllFishingGear(), new Function<Gear, String>() { + @Override + public String apply(Gear input) { + return input.getId(); + } + })); + + existingGearIds.addAll(Lists.transform(persistenceService.getAllScientificGear(), new Function<Gear, String>() { + @Override + public String apply(Gear input) { + return input.getId(); + } + })); + List<Gear> toImport = Lists.newArrayList(); Reader reader = Files.newReader(file, Charsets.UTF_8); @@ -251,6 +288,11 @@ public class ReferentialImportService extends AbstractTuttiService { try { for (Gear bean : importer) { + String id = bean.getId(); + if (id != null && !existingGearIds.add(id)) { + throw new IllegalArgumentException(t("tutti.service.referential.import.gear.notExistingId.error", id)); + } + toImport.add(bean); } importer.close(); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java index 8ef2174..80c271d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java @@ -22,15 +22,20 @@ package fr.ifremer.tutti.service.referential; * #L% */ +import com.google.common.base.Function; +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.TuttiCsvUtil; import org.nuiton.csv.Common; import java.text.ParseException; +import java.util.Collection; import java.util.Set; import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Model to import / export {@link Species} in csv format. @@ -45,7 +50,7 @@ public class SpeciesModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Sp // import definition - newMandatoryColumn(Species.PROPERTY_ID, new Common.IntegerParserFormatter(null, true) { + newMandatoryColumn(Species.PROPERTY_ID, Species.PROPERTY_ID_AS_INT, new Common.IntegerParserFormatter(null, true) { @Override public Integer parse(String value) throws ParseException { @@ -57,7 +62,7 @@ public class SpeciesModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Sp // must also be negative value if (parse >= 0) { - throw new IllegalArgumentException("Id of a temporary species must be negative, but was: " + parse); + throw new IllegalArgumentException(t("tutti.service.referential.import.species.idNotNegative.error", parse)); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java index 5547b46..a3f63d3 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java @@ -29,6 +29,8 @@ import fr.ifremer.tutti.service.TuttiCsvUtil; import org.apache.commons.lang3.StringUtils; import org.nuiton.csv.Common; +import static org.nuiton.i18n.I18n.t; + /** * Model to import / export {@link Vessel} in csv format. * @@ -54,7 +56,7 @@ public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Ves // must also start with the temporary prefix if (!parse.startsWith(TemporaryDataHelper.TEMPORARY_NAME_PREFIX)) { - throw new IllegalArgumentException("Code of a temporary vessel must starts with " + TemporaryDataHelper.TEMPORARY_NAME_PREFIX + ", but was: " + parse); + throw new IllegalArgumentException(t("tutti.service.referential.import.vessel.codePrefixMissing.error", parse));//"Code of a temporary vessel must starts with " + TemporaryDataHelper.TEMPORARY_NAME_PREFIX + ", but was: " + parse); } } diff --git a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties index bbb970e..22a326c 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties @@ -222,6 +222,8 @@ tutti.service.referential.import.gears.error= tutti.service.referential.import.persons.error= tutti.service.referential.import.species.error= tutti.service.referential.import.species.existingName.error= +tutti.service.referential.import.species.idNotNegative.error= +tutti.service.referential.import.species.notExistingId.error= tutti.service.referential.import.vessels.error= tutti.service.referential.import.vessels.existingValue.error= tutti.service.sumatra.export.error= diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index a870c3c..b7ed291 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -202,6 +202,8 @@ tutti.service.referential.import.gears.error=Erreur lors de l'import des engins tutti.service.referential.import.persons.error=Erreur lors de l'import des personnes du fichier %s tutti.service.referential.import.species.error=Erreur lors de l'import des espèces du fichier %s tutti.service.referential.import.species.existingName.error=L'espèce '%2$s' n'a pas été ajoutée au référentiel car elle est déjà présente +tutti.service.referential.import.species.idNotNegative.error=L'identifiant d'une espèce temporaire doit être négatif : %s +tutti.service.referential.import.species.notExistingId.error=L'identifiant '%s' n'a pas été trouvé parmi les espèces temporaires tutti.service.referential.import.vessels.error=Erreur lors de l'import des navires du fichier %s tutti.service.referential.import.vessels.existingValue.error=Un navire avec le nom %1s et l'immatriculation %2s existe déjà dans le référentiel tutti.service.sumatra.export.error=Erreur lors de l'export Sumatra dans le fichier %s diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java index a4fcd68..8a70284 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java @@ -57,6 +57,10 @@ public class ReferentialImportServiceTest { ";Temporary Species name 2\n" + ";Temporary Species name 3"; + private static final String SPECIES_UPDATE_FILE_CONTENT = + "id;name\n" + + "-1;Temporary Species name 11"; + private static final String GEAR_FILE_CONTENT = "id;name;label;scientificGear\n" + ";Gear fishing name 1;Gear fishing label 1;N\n" + @@ -106,6 +110,16 @@ public class ReferentialImportServiceTest { Files.createParentDirs(file); + Files.write(SPECIES_UPDATE_FILE_CONTENT, file, Charsets.UTF_8); + // try to import not existing id + try { + service.importTemporarySpecies(file); + Assert.fail(); + } catch (ApplicationTechnicalException e) { + Assert.assertTrue(true); + } + + // successful import Files.write(SPECIES_FILE_CONTENT, file, Charsets.UTF_8); List<Species> result = service.importTemporarySpecies(file); @@ -125,6 +139,16 @@ public class ReferentialImportServiceTest { } catch (ApplicationTechnicalException e) { Assert.assertTrue(true); } + + // try to update species with id -1 + Files.write(SPECIES_UPDATE_FILE_CONTENT, file, Charsets.UTF_8); + result = service.importTemporarySpecies(file); + Assert.assertNotNull(result); + Assert.assertEquals(1, result.size()); + Species actual = result.get(0); + Assert.assertNotNull(actual); + Assert.assertEquals("-1", actual.getId()); + Assert.assertEquals("Temporary Species name 11", actual.getName()); } @Test diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java index c29a55e..61b834c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java @@ -64,7 +64,7 @@ public class ExportExistingTemporaryGearAction extends AbstractTuttiAction<Tutti "exportTemporaryGear", "csv", t("tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile"), - t("tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export"), + t("tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export"), "^.*\\.csv", t("tutti.common.file.csv") ); doAction = file != null; @@ -95,6 +95,6 @@ public class ExportExistingTemporaryGearAction extends AbstractTuttiAction<Tutti @Override public void postSuccessAction() { super.postSuccessAction(); - sendMessage(t("tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export.success", file)); + sendMessage(t("tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export.success", file)); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java index c7b5419..3bc6ca4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java @@ -65,7 +65,7 @@ public class ExportExistingTemporaryPersonAction extends AbstractTuttiAction<Tut "exportTemporaryPerson", "csv", t("tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile"), - t("tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.export"), + t("tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export"), "^.*\\.csv", t("tutti.common.file.csv") ); doAction = file != null; @@ -96,6 +96,6 @@ public class ExportExistingTemporaryPersonAction extends AbstractTuttiAction<Tut @Override public void postSuccessAction() { super.postSuccessAction(); - sendMessage(t("tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.export.success", file)); + sendMessage(t("tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export.success", file)); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java index 3a8fa82..fa6da80 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java @@ -64,7 +64,7 @@ public class ExportExistingTemporarySpeciesAction extends AbstractTuttiAction<Tu "exportTemporarySpecies", "csv", t("tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile"), - t("tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.export"), + t("tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export"), "^.*\\.csv", t("tutti.common.file.csv") ); doAction = file != null; @@ -95,6 +95,6 @@ public class ExportExistingTemporarySpeciesAction extends AbstractTuttiAction<Tu @Override public void postSuccessAction() { super.postSuccessAction(); - sendMessage(t("tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.export.success", file)); + sendMessage(t("tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export.success", file)); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java index 60acd90..314d4f5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java @@ -64,7 +64,7 @@ public class ExportExistingTemporaryVesselAction extends AbstractTuttiAction<Tut "exportTemporaryExample", "csv", t("tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile"), - t("tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export"), + t("tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export"), "^.*\\.csv", t("tutti.common.file.csv") ); doAction = file != null; @@ -95,6 +95,6 @@ public class ExportExistingTemporaryVesselAction extends AbstractTuttiAction<Tut @Override public void postSuccessAction() { super.postSuccessAction(); - sendMessage(t("tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success", file)); + sendMessage(t("tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export.success", file)); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java index 83abebf..710cf51 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java @@ -30,7 +30,6 @@ import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; -import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java index 8a240b8..bf71bee 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java @@ -117,6 +117,11 @@ public abstract class AbstractTuttiBeanUIModel<E, B extends AbstractTuttiBeanUIM } @Override + public void setIdAsInt(Integer idAsInt) { + setId(idAsInt); + } + + @Override public void setId(Integer id) { if (id == null) { this.id = null; diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 9bb9f24..b9b2c86 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1414,6 +1414,14 @@ tutti.main.title.nodb= tutti.main.title.selectedCruise= tutti.main.title.selectedProgram= tutti.main.title.selectedProtocol= +tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export.success= tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export= tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export.success= tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index b3b5bc0..25d0ee6 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1366,6 +1366,14 @@ tutti.main.title.nodb=Pas de base chargée tutti.main.title.selectedCruise=Campagne %s tutti.main.title.selectedProgram=Série de campagne %s tutti.main.title.selectedProtocol=Protocole %s +tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export.success= tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export=Exporter tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export.success=Exemple de référentiel temporaire d'engins exporté dans le fichier %s tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import=Importer -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.