Author: tchemit Date: 2014-05-30 15:29:49 +0200 (Fri, 30 May 2014) New Revision: 1823 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1823 Log: fixes #5138 Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CancelEditFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -39,6 +39,7 @@ import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequencys; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchs; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper; @@ -52,6 +53,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Collections; import java.util.List; @@ -74,6 +77,9 @@ @Resource(name = "referentialPersistenceService") protected ReferentialPersistenceService referentialService; + @Resource(name = "fishingOperationPersistenceService") + protected FishingOperationPersistenceService fishingOperationPersistenceService; + @Resource(name = "batchPersistenceHelper") protected BatchPersistenceHelper batchHelper; @@ -95,6 +101,8 @@ boolean validateTree) { Preconditions.checkNotNull(fishingOperationId); + DateFormat df = new SimpleDateFormat("dd/MM/yyy"); + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false); // -- Vrac > Benthos > Alive Itemized @@ -112,7 +120,9 @@ Preconditions.checkNotNull(referenceTaxon, "Can't have a rootBenthosBatch with a null taxon, but was for " + batch.getId()); Species species = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId()); if (species == null) { - throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); + FishingOperation fishingOperation = fishingOperationPersistenceService.getFishingOperation(fishingOperationId); + String fishingOperationName = fishingOperation.getStationNumber() + " - " + fishingOperation.getFishingOperationNumber() + " - " + df.format(fishingOperation.getGearShootingStartDate()); + throw new InvalidBatchModelException(t("tutti.persistence.benthosBatch.validation.unkonwn.taxon", fishingOperationName, source.getId(), referenceTaxon.getId())); } BenthosBatch target = BenthosBatchs.newBenthosBatch(); target.setSpecies(species); @@ -135,7 +145,9 @@ Preconditions.checkNotNull(referenceTaxon, "Can't have a rootSpeciesBatch with a null taxon, but was for " + source.getId()); Species species = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId()); if (species == null) { - throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); + FishingOperation fishingOperation = fishingOperationPersistenceService.getFishingOperation(fishingOperationId); + String fishingOperationName = fishingOperation.getStationNumber() + " - " + fishingOperation.getFishingOperationNumber() + " - " + df.format(fishingOperation.getGearShootingStartDate()); + throw new InvalidBatchModelException(t("tutti.persistence.benthosBatch.validation.unkonwn.taxon", fishingOperationName, source.getId(), referenceTaxon.getId())); } BenthosBatch target = BenthosBatchs.newBenthosBatch(); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -35,6 +35,7 @@ import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon; import fr.ifremer.tutti.persistence.InvalidBatchModelException; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; +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; @@ -52,6 +53,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Collections; import java.util.List; @@ -74,6 +77,9 @@ @Resource(name = "referentialPersistenceService") protected ReferentialPersistenceService referentialService; + @Resource(name = "fishingOperationPersistenceService") + protected FishingOperationPersistenceService fishingOperationPersistenceService; + @Resource(name = "batchPersistenceHelper") protected BatchPersistenceHelper batchHelper; @@ -95,6 +101,8 @@ boolean validateTree) throws InvalidBatchModelException { Preconditions.checkNotNull(fishingOperationId); + DateFormat df = new SimpleDateFormat("dd/MM/yyy"); + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false); // -- Vrac > Species > Alive Itemized @@ -119,7 +127,9 @@ } Species species = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId()); if (species == null) { - throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); + FishingOperation fishingOperation = fishingOperationPersistenceService.getFishingOperation(fishingOperationId); + String fishingOperationName = fishingOperation.getStationNumber() + " - " + fishingOperation.getFishingOperationNumber() + " - " + df .format(fishingOperation.getGearShootingStartDate()); + throw new InvalidBatchModelException(t("tutti.persistence.speciesBatch.validation.unkonwn.taxon", fishingOperationName, source.getId(), referenceTaxon.getId())); } SpeciesBatch target = SpeciesBatchs.newSpeciesBatch(); target.setSpecies(species); @@ -146,7 +156,9 @@ } Species species = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId()); if (species == null) { - throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); + FishingOperation fishingOperation = fishingOperationPersistenceService.getFishingOperation(fishingOperationId); + String fishingOperationName = fishingOperation.getStationNumber() + " - " + fishingOperation.getFishingOperationNumber() + " - " + df.format(fishingOperation.getGearShootingStartDate()); + throw new InvalidBatchModelException(t("tutti.persistence.speciesBatch.validation.unkonwn.taxon", fishingOperationName , source.getId(), referenceTaxon.getId())); } SpeciesBatch target = SpeciesBatchs.newSpeciesBatch(); target.setSpecies(species); Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties =================================================================== --- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-05-30 13:29:49 UTC (rev 1823) @@ -137,6 +137,7 @@ tutti.persistence.batch.validation.vracSpeciesInertNotFound= tutti.persistence.batch.validation.vracSpeciesLifeNotFound= tutti.persistence.batch.validation.vracSpeciesNotFound= +tutti.persistence.benthosBatch.validation.unkonwn.taxon= tutti.persistence.config.generateEnumFile.error= tutti.persistence.config.generateFile.error= tutti.persistence.cruise.gearUsedInOperations.error= @@ -150,3 +151,4 @@ tutti.persistence.loader.error= tutti.persistence.protocol.delete.error= tutti.persistence.protocol.fromFile.error= +tutti.persistence.speciesBatch.validation.unkonwn.taxon= Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties =================================================================== --- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-05-30 13:29:49 UTC (rev 1823) @@ -137,6 +137,7 @@ tutti.persistence.batch.validation.vracSpeciesInertNotFound=Lot 'Vrac > Espèces > Inerte' non trouvé, ou configuré avec d'autres critères de classement. tutti.persistence.batch.validation.vracSpeciesLifeNotFound=Lot 'Vrac > Espèces > Vivant' non trouvé, ou configuré avec d'autres critères de classement. tutti.persistence.batch.validation.vracSpeciesNotFound=Lot 'Vrac > Espèces' non trouvé, ou configuré avec d'autres critères de classement. +tutti.persistence.benthosBatch.validation.unkonwn.taxon=Opération %s - e lot benthos (%s) utilise une espèce de code inconnu (%s). tutti.persistence.config.generateEnumFile.error=Erreur lors de la génération du fichier d'énumération de la configuration de la base de données tutti.persistence.config.generateFile.error=Erreur lors de la génération du fichier de configuration de la base de données tutti.persistence.cruise.gearUsedInOperations.error=Vous essayez d'enlever un ou plusieurs engins qui sont utilisés sur des traits.<hr/>Veuillez changer l'engin des traits en question pour pouvoir les enlever de la campagne. @@ -150,3 +151,4 @@ tutti.persistence.loader.error=Erreur de conversion du dossier %s en URL tutti.persistence.protocol.delete.error=Erreur lors de la suppression du protocole %1s (fichier %2s) tutti.persistence.protocol.fromFile.error=Erreur lors de l'import du protocole du fichier %s +tutti.persistence.speciesBatch.validation.unkonwn.taxon=Opération %s - le lot espèce (%s) utilise une espèce de code inconnu (%s). Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -56,8 +56,8 @@ this.badSpecies = badSpecies; } - public void setBadBenthos(Set<String> badSBenthos) { - this.badBenthos = badSBenthos; + public void setBadBenthos(Set<String> badBenthos) { + this.badBenthos = badBenthos; } public boolean withBadSpecies() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CancelEditFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CancelEditFishingOperationAction.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CancelEditFishingOperationAction.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -99,9 +99,9 @@ // } } - @Override - public void postSuccessAction() { - super.postSuccessAction(); - getEditAction().displayValidationErrors(); - } +// @Override +// public void postSuccessAction() { +// super.postSuccessAction(); +// getEditAction().displayValidationErrors(); +// } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditFishingOperationAction.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/EditFishingOperationAction.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -128,7 +128,7 @@ * * @since 2.4 */ - protected List<String> errorMessages = Lists.newArrayList(); + protected final List<String> errorMessages = Lists.newArrayList(); /** * Flag to know if this action is part of another action. @@ -237,6 +237,8 @@ @Override public boolean prepareAction() { + errorMessages.clear(); + boolean canContinue = true; if (checkPreviousEdit) { FishingOperationsUI ui = getUI(); @@ -436,9 +438,9 @@ // ); getUI().repaint(); - if (!internalAction) { - displayValidationErrors(); - } +// if (!internalAction) { +// displayValidationErrors(); +// } } public void displayValidationErrors() { @@ -632,7 +634,6 @@ List<Attachment> attachments; - boolean catchNotFound; boolean catchEnabled; String operationId = bean == null ? null : bean.getId(); @@ -644,6 +645,8 @@ } progressionModel.adaptTotal(empty ? 1 : 6); + String validationErrorMessage = null; + if (empty) { // create a new CatchBatch @@ -657,7 +660,6 @@ attachments = Collections.emptyList(); catchEnabled = true; - catchNotFound = false; } else { @@ -683,7 +685,6 @@ batch.setFishingOperation(bean); Integer objectId = batch.getIdAsInt(); attachments = persistenceService.getAllAttachments(catchesUIModel.getObjectType(), objectId); - catchNotFound = false; catchEnabled = true; } catch (InvalidBatchModelException e) { @@ -695,8 +696,11 @@ batch = null; attachments = Collections.emptyList(); + validationErrorMessage = t("tutti.fishingOperations.warn.catchBatch.invalidSampleCategoryModel"); + + getModel().setValidationErrorMessage(validationErrorMessage); + catchEnabled = false; - catchNotFound = false; } } else { @@ -705,7 +709,8 @@ attachments = Collections.emptyList(); catchEnabled = false; - catchNotFound = true; + + validationErrorMessage = t("tutti.fishingOperations.warn.catchBatch.notFound"); } } @@ -713,9 +718,7 @@ catchesUIModel, catchBatchMonitor, batch, - true, - catchEnabled, - catchNotFound); + catchEnabled); // 4) Propagate new selected fishingoperation to others tabs @@ -751,6 +754,18 @@ catchValid = false; } + if (!errorMessages.isEmpty()) { + + StringBuilder message = new StringBuilder(); + for (String errorMessage : errorMessages) { + message.append("<li>").append(errorMessage).append("</li>"); + } + validationErrorMessage = t("tutti.fishingOperations.warn.invalid.batch", message.toString()); + + } + + getModel().setValidationErrorMessage(validationErrorMessage); + if (catchValid) { // load other tabs @@ -771,8 +786,6 @@ catchesUIModel, catchBatchMonitor, null, - false, - false, false); } @@ -789,13 +802,11 @@ EditCatchesUIModel catchesUIModel, TuttiBeanMonitor<EditCatchesUIModel> catchBatchMonitor, CatchBatch batch, - boolean sampleModelValid, - boolean catchEnabled, - boolean catchNotFound) { + boolean catchEnabled) { getModel().setCatchEnabled(catchEnabled); - getModel().setCatchNotFound(catchNotFound); - getModel().setSampleCatchModelValid(sampleModelValid); +// getModel().setCatchNotFound(catchNotFound); +// getModel().setSampleCatchModelValid(sampleModelValid); catchesUIModel.fromEntity(batch); catchesUIModel.addAllAttachment(attachments); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2014-05-30 13:29:49 UTC (rev 1823) @@ -62,7 +62,8 @@ #warningLabel { actionIcon: warning; border: {new javax.swing.border.EmptyBorder(5, 10, 5, 10)}; - text: {handler.getCatchWarningLabel(model.isCatchEnabled(), model.isCatchNotFound(), model.isSampleCatchModelValid())}; + /*text: {handler.getCatchWarningLabel(model.isCatchEnabled(), model.isCatchNotFound(), model.isSampleCatchModelValid())};*/ + text: {model.getValidationErrorMessage()}; } #catchesTab { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -23,7 +23,6 @@ */ import com.google.common.collect.Lists; -import org.nuiton.jaxx.application.swing.util.CloseableUI; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -37,6 +36,7 @@ import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.application.swing.util.CloseableUI; import javax.swing.JComponent; import javax.swing.JTabbedPane; @@ -276,20 +276,6 @@ //-- Public methods --// //------------------------------------------------------------------------// - public String getCatchWarningLabel(boolean catchEnabled, - boolean catchNotFound, - boolean catchSampleModelValid) { - String result = null; - if (!catchSampleModelValid) { - result = t("tutti.fishingOperations.warn.catchBatch.invalidSampleCategoryModel"); - } else if (catchNotFound) { - result = t("tutti.fishingOperations.warn.catchBatch.notFound"); - } else if (!catchEnabled) { - result = t("tutti.fishingOperations.warn.invalid.batch.model"); - } - return result; - } - public boolean isFishingOperationModified() { return getModel().getEditFishingOperation() != null && getUI().getFishingOperationTabContent().getModel().isModify(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2014-05-30 13:29:49 UTC (rev 1823) @@ -58,6 +58,8 @@ public static final String PROPERTY_SAMPLE_CATCH_MODEL_VALID = "sampleCatchModelValid"; + public static final String PROPERTY_VALIDATION_ERROR_MESSAGE = "validationErrorMessage"; + /** * List of existing fishing operation for the selected cruise. * <p/> @@ -118,23 +120,12 @@ protected boolean catchEnabled = true; /** - * Flag to know if sample catch model is valid or not on the selected - * fishing operation. - * <p/> - * <strong>Note:</strong> When value is {@code false}, then - * {@link #catchEnabled} is always to {@code false} too. + * contains if any error message while loading the fishing operation catch batch. * - * @since 2.4 + * @since 3.5 */ - protected boolean sampleCatchModelValid = true; + protected String validationErrorMessage; - /** - * Flag setted to true when no catch found. - * - * @since 2.2 - */ - protected boolean catchNotFound; - public List<FishingOperation> getFishingOperation() { return fishingOperation; } @@ -236,23 +227,13 @@ firePropertyChange(PROPERTY_CATCH_ENABLED, oldValue, catchEnabled); } - public boolean isCatchNotFound() { - return catchNotFound; + public String getValidationErrorMessage() { + return validationErrorMessage; } - public void setCatchNotFound(boolean catchNotFound) { - boolean oldValue = isCatchNotFound(); - this.catchNotFound = catchNotFound; - firePropertyChange(PROPERTY_CATCH_NOT_FOUND, oldValue, catchNotFound); + public void setValidationErrorMessage(String validationErrorMessage) { + String oldValue = getValidationErrorMessage(); + this.validationErrorMessage = validationErrorMessage; + firePropertyChange(PROPERTY_VALIDATION_ERROR_MESSAGE, oldValue, validationErrorMessage); } - - public boolean isSampleCatchModelValid() { - return sampleCatchModelValid; - } - - public void setSampleCatchModelValid(boolean sampleCatchModelValid) { - boolean oldValue = isSampleCatchModelValid(); - this.sampleCatchModelValid = sampleCatchModelValid; - firePropertyChange(PROPERTY_SAMPLE_CATCH_MODEL_VALID, oldValue, sampleCatchModelValid); - } } Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-30 13:29:49 UTC (rev 1823) @@ -1183,6 +1183,7 @@ tutti.fishingOperations.title.validate.operations= tutti.fishingOperations.warn.catchBatch.invalidSampleCategoryModel= tutti.fishingOperations.warn.catchBatch.notFound= +tutti.fishingOperations.warn.invalid.batch= tutti.fishingOperations.warn.invalid.batch.model= tutti.flash.info.all.caractristic.exported= tutti.flash.info.benthos.add.to.protocol= 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 2014-05-30 11:13:50 UTC (rev 1822) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-30 13:29:49 UTC (rev 1823) @@ -1116,7 +1116,7 @@ tutti.exportCruise.action.success=La campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>. tutti.exportCruiseForSumatra.action.chooseFile=Choisir le fichier d'export tutti.exportCruiseForSumatra.action.success=La campagne sélectionnée a été exportée dans le fichier <strong>%s</strong> -tutti.exportCruiseForSumatra.message.missing.protocol=<html><body>Pas de protocole renseigné, La colonne <strong>espcecamapgne</strong> ne sera pas renseigné.</body></html> +tutti.exportCruiseForSumatra.message.missing.protocol=<html><body>Pas de protocole renseigné, La colonne <strong>espececampagne</strong> ne sera pas renseigné.</body></html> tutti.exportCruiseForSumatra.title.choose.exportFile=Exporter la campagne tutti.exportCruiseForSumatra.title.missing.protocol=Pas de protocole renseigné tutti.exportCruiseForSumatraV2.message.required.protocol= @@ -1155,6 +1155,7 @@ tutti.fishingOperations.title.validate.operations=Validation des opérations de pêches (%s) tutti.fishingOperations.warn.catchBatch.invalidSampleCategoryModel=L'arbre d’échantillonnage n'est pas compatible (utilisation de catégories non configurées ou dans un mauvais ordre). Les captures ne seront pas visibles. tutti.fishingOperations.warn.catchBatch.notFound=Pas d'arbre d’échantillonnage associé à l'opération de pêche. +tutti.fishingOperations.warn.invalid.batch=<html><body>Les erreurs suivantes ont été détectées, impossible d'afficher les captures \:<br/><ul>%s</ul></body></html>. tutti.fishingOperations.warn.invalid.batch.model=L'arbre d’échantillonnage n'est pas compatible. Les captures ne seront pas visibles. tutti.flash.info.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier <strong>%s</strong>. tutti.flash.info.benthos.add.to.protocol=Le benthos <strong>%s</strong> a été ajoutée au protocole.