r1565 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport tutti-service/src/main/resources/i18n tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action
Author: tchemit Date: 2014-01-31 14:13:56 +0100 (Fri, 31 Jan 2014) New Revision: 1565 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1565 Log: fixes #4286: [IMPORT PSION] V?\195?\169rifier les cat?\195?\169gorisation uniquement utilis?\195?\169es Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java 2014-01-31 10:56:26 UTC (rev 1564) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java 2014-01-31 13:13:56 UTC (rev 1565) @@ -32,6 +32,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -78,6 +79,19 @@ return result; } + public Set<Integer> getSampleCategoryIdUsed() { + Set<Integer> result = Sets.newHashSet(); + for (PsionImportBatchModel batch : batchsByCategory.values()) { + Iterator<PsionImportBatchModel.SampleCategory> categoryIterator = batch.getCategoryIterator(); + while (categoryIterator.hasNext()) { + PsionImportBatchModel.SampleCategory next = categoryIterator.next(); + + result.add(next.getCategoryId()); + } + } + return result; + } + public boolean withErrors() { return !errors.isEmpty(); } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-01-31 10:56:26 UTC (rev 1564) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-01-31 13:13:56 UTC (rev 1565) @@ -25,13 +25,12 @@ */ import com.google.common.base.Charsets; +import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.common.io.Files; -import org.nuiton.jaxx.application.ApplicationBusinessException; -import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; @@ -39,6 +38,7 @@ import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; @@ -52,12 +52,14 @@ import fr.ifremer.tutti.service.AbstractTuttiService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiServiceContext; +import fr.ifremer.tutti.type.WeightUnit; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.application.ApplicationBusinessException; import java.io.BufferedReader; import java.io.File; @@ -232,8 +234,28 @@ } } else { - // persist in db - persist(result, importModel, operation, catchBatch); + // check sample categories exists + + SampleCategoryModel sampleCategoryModel = context.getSampleCategoryModel(); + Set<Integer> sampleCategoryIdUsed = importModel.getSampleCategoryIdUsed(); + List<String> missingCategories = Lists.newArrayList(); + for (Integer categoryId : sampleCategoryIdUsed) { + if (!sampleCategoryModel.containsCategoryId(categoryId)) { + missingCategories.add("<li>" + categoryId + "</li>"); + } + } + + if (!missingCategories.isEmpty()) { + + result.addError( + _("tutti.service.psionimport.error.invalidSampleCategoryModel.message", + Joiner.on("").join(missingCategories))); + } else { + + // persist in db + persist(result, importModel, operation, catchBatch); + } + } return result; Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties =================================================================== --- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-01-31 10:56:26 UTC (rev 1564) +++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-01-31 13:13:56 UTC (rev 1565) @@ -152,6 +152,7 @@ tutti.service.psionimport.error.invalid.firstLine= tutti.service.psionimport.error.invalid.line.syntax= tutti.service.psionimport.error.invalid.operation= +tutti.service.psionimport.error.invalidSampleCategoryModel.message= tutti.service.psionimport.error.no.lengthClass.caracteristic= tutti.service.psionimport.error.no.protocol= tutti.service.psionimport.error.species.already.used= Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties =================================================================== --- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-01-31 10:56:26 UTC (rev 1564) +++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-01-31 13:13:56 UTC (rev 1565) @@ -151,6 +151,7 @@ tutti.service.psionimport.error.invalid.firstLine=La ligne %s (%s) n'est pas valide, elle doit être précédée par une ligne ESPE tutti.service.psionimport.error.invalid.line.syntax=Ligne %s, format incorrecte (%s) tutti.service.psionimport.error.invalid.operation=Code station ou date du trait incorrect +tutti.service.psionimport.error.invalidSampleCategoryModel.message=<html><body>Le modèle de catégorisation n'est pas compatible pour un import psion.<br> Il manque les catégories suivantes \: <ul>%s</ul><hr/>Veuillez ajouter cette catégorie dans la configuration de catégorisation (menu administration).</body></html> tutti.service.psionimport.error.no.lengthClass.caracteristic=Ligne %s espèce '%s' ignorée car pas de caractéristique de classe de taille renseignée dans le protocole. tutti.service.psionimport.error.no.protocol=Impossible de faire un import Psion sans protocol. tutti.service.psionimport.error.species.already.used="Ligne %s, espèce '%s' déjà utilisée Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java 2014-01-31 10:56:26 UTC (rev 1564) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java 2014-01-31 13:13:56 UTC (rev 1565) @@ -24,12 +24,8 @@ * #L% */ -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; -import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.psionimport.PsionImportResult; import fr.ifremer.tutti.service.psionimport.PsionImportService; @@ -41,10 +37,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel; -import javax.swing.JOptionPane; -import javax.swing.UIManager; import java.io.File; -import java.util.List; import static org.nuiton.i18n.I18n._; @@ -83,32 +76,8 @@ @Override public boolean prepareAction() throws Exception { - boolean result = true; + boolean result = super.prepareAction(); - // must check that sample category model is compatible for pupitri import - // means need some categories - - TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile(); - SampleCategoryModel sampleCategoryModel = getDataContext().getSampleCategoryModel(); - - List<String> missingCategories = Lists.newArrayList(); - if (!sampleCategoryModel.containsCategoryId(enumerationFile.PMFM_ID_SEX)) { - missingCategories.add("<li>" + persistenceService.getSexCaracteristic().getParameterName() + "</li>"); - } - if (!sampleCategoryModel.containsCategoryId(enumerationFile.PMFM_ID_MATURITY)) { - missingCategories.add("<li>" + persistenceService.getMaturityCaracteristic().getParameterName() + "</li>"); - } - if (!missingCategories.isEmpty()) { - result = false; - JOptionPane.showMessageDialog( - getContext().getActionUI(), - _("tutti.editSpeciesBatch.action.importPsion.invalidSampleCategoryModel.message", Joiner.on("").join(missingCategories)), - _("tutti.editSpeciesBatch.action.importPsion.invalidSampleCategoryModel.title"), - JOptionPane.ERROR_MESSAGE, - UIManager.getIcon("error") - ); - } - if (result) { // choose file to import importedTrunkFile = chooseFile( @@ -118,7 +87,6 @@ result = importedTrunkFile != null; } - return result; }
participants (1)
-
tchemit@users.forge.codelutin.com