[tutti] branch develop updated (55dafb4 -> fd13aac)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from 55dafb4 Merge branch 'develop' of https://git.codelutin.com/tutti into develop new fd13aac fixes #5854 [IMPORT PROTOCOL] Ajouter un contrôle à l'import des espèces ou du benthos The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit fd13aac97032f7bf91379cc919c20a4323e2c551 Author: Kevin Morin <morin@codelutin.com> Date: Thu Sep 25 14:13:19 2014 +0200 fixes #5854 [IMPORT PROTOCOL] Ajouter un contrôle à l'import des espèces ou du benthos Summary of changes: .../protocol/ProtocolImportExportService.java | 97 +++++++++++++++++----- .../swing/action/ImportProtocolBenthosAction.java | 24 +++++- .../swing/action/ImportProtocolSpeciesAction.java | 24 +++++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 8 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 4 + 5 files changed, 128 insertions(+), 29 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 fd13aac97032f7bf91379cc919c20a4323e2c551 Author: Kevin Morin <morin@codelutin.com> Date: Thu Sep 25 14:13:19 2014 +0200 fixes #5854 [IMPORT PROTOCOL] Ajouter un contrôle à l'import des espèces ou du benthos --- .../protocol/ProtocolImportExportService.java | 97 +++++++++++++++++----- .../swing/action/ImportProtocolBenthosAction.java | 24 +++++- .../swing/action/ImportProtocolSpeciesAction.java | 24 +++++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 8 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 4 + 5 files changed, 128 insertions(+), 29 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java index 24e3b5a..5f7a4c9 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java @@ -54,6 +54,7 @@ import java.io.BufferedWriter; import java.io.File; import java.io.IOException; import java.io.Reader; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -224,7 +225,7 @@ public class ProtocolImportExportService extends AbstractTuttiService { } } - public void importProtocolSpecies(File file, + public List<Species> importProtocolSpecies(File file, TuttiProtocol protocol, Map<String, Caracteristic> caracteristicMap, Map<String, Species> speciesMap) { @@ -234,6 +235,8 @@ public class ProtocolImportExportService extends AbstractTuttiService { "] species from file: " + file); } + List<Species> result = new ArrayList<>(); + Map<Integer, SpeciesProtocol> ids = Maps.newLinkedHashMap(); if (!protocol.isSpeciesEmpty()) { @@ -245,6 +248,18 @@ public class ProtocolImportExportService extends AbstractTuttiService { } } + + Map<Integer, SpeciesProtocol> benthosIds = Maps.newLinkedHashMap(); + + if (!protocol.isBenthosEmpty()) { + + // get existing species (will be not be imported) + + for (SpeciesProtocol speciesProtocol : protocol.getBenthos()) { + benthosIds.put(speciesProtocol.getSpeciesReferenceTaxonId(), speciesProtocol); + } + } + SpeciesRowModel csvModel = new SpeciesRowModel(getCsvSeparator(), caracteristicMap, speciesMap); @@ -266,17 +281,24 @@ public class ProtocolImportExportService extends AbstractTuttiService { Species species = bean.getSpecies(); Integer id = species.getReferenceTaxonId(); - SpeciesProtocol sp = ids.get(id); - if (sp == null) { + SpeciesProtocol sp = benthosIds.get(id); + if (sp != null) { + result.add(species); - // create a new species protocol - sp = SpeciesProtocols.newSpeciesProtocol(); - } - binder.copy(bean, sp); - sp.setMandatorySampleCategoryId(Lists.newArrayList( - bean.getMandatorySampleCategoryId())); + } else { + + sp = ids.get(id); + if (sp == null) { - ids.put(id, sp); + // create a new species protocol + sp = SpeciesProtocols.newSpeciesProtocol(); + } + binder.copy(bean, sp); + sp.setMandatorySampleCategoryId(Lists.newArrayList( + bean.getMandatorySampleCategoryId())); + + ids.put(id, sp); + } } importer.close(); } finally { @@ -295,18 +317,30 @@ public class ProtocolImportExportService extends AbstractTuttiService { List<SpeciesProtocol> values = Lists.newArrayList(ids.values()); protocol.setSpecies(values); + + return result; } - public void importProtocolBenthos(File file, - TuttiProtocol protocol, - Map<String, Caracteristic> caracteristicMap, - Map<String, Species> speciesMap) { + /** + * + * @param file + * @param protocol + * @param caracteristicMap + * @param speciesMap + * @return The list of the species not imported because they are already in the species + */ + public List<Species> importProtocolBenthos(File file, + TuttiProtocol protocol, + Map<String, Caracteristic> caracteristicMap, + Map<String, Species> speciesMap) { if (log.isInfoEnabled()) { log.info("Will import protocol [" + protocol.getName() + "] species from file: " + file); } + List<Species> result = new ArrayList<>(); + Map<Integer, SpeciesProtocol> ids = Maps.newLinkedHashMap(); if (!protocol.isBenthosEmpty()) { @@ -317,6 +351,18 @@ public class ProtocolImportExportService extends AbstractTuttiService { ids.put(speciesProtocol.getSpeciesReferenceTaxonId(), speciesProtocol); } } + + Map<Integer, SpeciesProtocol> speciesIds = Maps.newLinkedHashMap(); + + if (!protocol.isSpeciesEmpty()) { + + // get existing species (will be not be imported) + + for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) { + speciesIds.put(speciesProtocol.getSpeciesReferenceTaxonId(), speciesProtocol); + } + } + SpeciesRowModel csvModel = new SpeciesRowModel(getCsvSeparator(), caracteristicMap, speciesMap); @@ -338,15 +384,22 @@ public class ProtocolImportExportService extends AbstractTuttiService { Species species = bean.getSpecies(); Integer id = species.getReferenceTaxonId(); - SpeciesProtocol sp = ids.get(id); - if (sp == null) { + SpeciesProtocol sp = speciesIds.get(id); + if (sp != null) { + result.add(species); - // create a new species protocol - sp = SpeciesProtocols.newSpeciesProtocol(); - } - binder.copy(bean, sp); + } else { + + sp = ids.get(id); + if (sp == null) { - ids.put(id, sp); + // create a new species protocol + sp = SpeciesProtocols.newSpeciesProtocol(); + } + binder.copy(bean, sp); + + ids.put(id, sp); + } } importer.close(); } finally { @@ -363,6 +416,8 @@ public class ProtocolImportExportService extends AbstractTuttiService { List<SpeciesProtocol> values = Lists.newArrayList(ids.values()); protocol.setBenthos(values); + + return result; } public void exportProtocolSpecies(File file, diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolBenthosAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolBenthosAction.java index 47b569e..377c076 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolBenthosAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolBenthosAction.java @@ -25,6 +25,8 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; @@ -97,10 +99,11 @@ public class ImportProtocolBenthosAction extends AbstractTuttiAction<EditProtoco ProtocolImportExportService service = getContext().getTuttiProtocolImportExportService(); - service.importProtocolBenthos(file, - protocol, - model.getAllCaracteristic(), - model.getAllReferentSpeciesByTaxonId()); + List<Species> notImportedBenthos = + service.importProtocolBenthos(file, + protocol, + model.getAllCaracteristic(), + model.getAllReferentSpeciesByTaxonId()); // build rows from imported+merged protocol // (will also remove all synonyms of species referent used) @@ -142,5 +145,18 @@ public class ImportProtocolBenthosAction extends AbstractTuttiAction<EditProtoco file, nbSynonym); } sendMessage(message); + + if (!notImportedBenthos.isEmpty()) { + StringBuilder sb = new StringBuilder(); + for (Species sp : notImportedBenthos) { + sb.append("<li>" + decorate(sp, DecoratorService.FROM_PROTOCOL) + "</li>"); + } + displayWarningMessage( + t("tutti.editProtocol.action.importProtocolBenthos.speciesInSpecies.title"), + "<html><body>" + + t("tutti.editProtocol.action.importProtocolBenthos.speciesInSpecies", sb.toString()) + + "</body></html>" + ); + } } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolSpeciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolSpeciesAction.java index cd173ae..718d459 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolSpeciesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolSpeciesAction.java @@ -25,6 +25,8 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; @@ -97,10 +99,11 @@ public class ImportProtocolSpeciesAction extends AbstractTuttiAction<EditProtoco ProtocolImportExportService service = getContext().getTuttiProtocolImportExportService(); - service.importProtocolSpecies(file, - protocol, - model.getAllCaracteristic(), - model.getAllReferentSpeciesByTaxonId()); + List<Species> notImportedSpecies = + service.importProtocolSpecies(file, + protocol, + model.getAllCaracteristic(), + model.getAllReferentSpeciesByTaxonId()); // build rows from imported+merged protocol // (will also remove all synonyms of species referent used) @@ -142,5 +145,18 @@ public class ImportProtocolSpeciesAction extends AbstractTuttiAction<EditProtoco file, nbSynonym); } sendMessage(message); + + if (!notImportedSpecies.isEmpty()) { + StringBuilder sb = new StringBuilder(); + for (Species sp : notImportedSpecies) { + sb.append("<li>" + decorate(sp, DecoratorService.FROM_PROTOCOL) + "</li>"); + } + displayWarningMessage( + t("tutti.editProtocol.action.importProtocolSpecies.speciesInBenthos.title"), + "<html><body>" + + t("tutti.editProtocol.action.importProtocolSpecies.speciesInBenthos", sb.toString()) + + "</body></html>" + ); + } } } 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 9be01fb..87c1c6a 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 @@ -878,15 +878,23 @@ tutti.editProtocol.action.exportProtocolSpecies.tip= tutti.editProtocol.action.exportPupitri= tutti.editProtocol.action.exportPupitri.mnemonic= tutti.editProtocol.action.exportPupitri.tip= +tutti.editProtocol.action.importBenthos.speciesInSpecies= +tutti.editProtocol.action.importBenthos.speciesInSpecies.title= tutti.editProtocol.action.importProtocolBenthos= tutti.editProtocol.action.importProtocolBenthos.mnemonic= +tutti.editProtocol.action.importProtocolBenthos.speciesInSpecies= +tutti.editProtocol.action.importProtocolBenthos.speciesInSpecies.title= tutti.editProtocol.action.importProtocolBenthos.tip= tutti.editProtocol.action.importProtocolCaracteristic= tutti.editProtocol.action.importProtocolCaracteristic.mnemonic= tutti.editProtocol.action.importProtocolCaracteristic.tip= tutti.editProtocol.action.importProtocolSpecies= tutti.editProtocol.action.importProtocolSpecies.mnemonic= +tutti.editProtocol.action.importProtocolSpecies.speciesInBenthos= +tutti.editProtocol.action.importProtocolSpecies.speciesInBenthos.title= tutti.editProtocol.action.importProtocolSpecies.tip= +tutti.editProtocol.action.importSpecies.speciesInBenthos= +tutti.editProtocol.action.importSpecies.speciesInBenthos.title= tutti.editProtocol.action.removeBenthosProtocol= tutti.editProtocol.action.removeBenthosProtocol.mnemonic= tutti.editProtocol.action.removeBenthosProtocol.tip= 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 f1809a5..ca8f7a5 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 @@ -867,12 +867,16 @@ tutti.editProtocol.action.exportPupitri.mnemonic=p tutti.editProtocol.action.exportPupitri.tip=Exporter les espèces au format Pupitri tutti.editProtocol.action.importProtocolBenthos=Importer les benthos tutti.editProtocol.action.importProtocolBenthos.mnemonic=i +tutti.editProtocol.action.importProtocolBenthos.speciesInSpecies=Les espèces suivantes n'ont pas été importées car elles sont déjà présentes dans les espèces \:<ul>%s</ul> +tutti.editProtocol.action.importProtocolBenthos.speciesInSpecies.title=Espèces non importées tutti.editProtocol.action.importProtocolBenthos.tip=Importer les benthos dans le protocole tutti.editProtocol.action.importProtocolCaracteristic=Importer les caractéristiques tutti.editProtocol.action.importProtocolCaracteristic.mnemonic=i tutti.editProtocol.action.importProtocolCaracteristic.tip=Importer les caractéristiques dans le protocole tutti.editProtocol.action.importProtocolSpecies=Importer les espèces tutti.editProtocol.action.importProtocolSpecies.mnemonic=é +tutti.editProtocol.action.importProtocolSpecies.speciesInBenthos=Les espèces suivantes n'ont pas été importées car elles sont déjà présentes dans le benthos \:<ul>%s</ul> +tutti.editProtocol.action.importProtocolSpecies.speciesInBenthos.title=Espèces non importées tutti.editProtocol.action.importProtocolSpecies.tip=Importer les espèces dans le protocole tutti.editProtocol.action.removeBenthosProtocol=Supprimer les benthos tutti.editProtocol.action.removeBenthosProtocol.mnemonic=S -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm