r1792 - in branches/tutti-3.4.x: tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra tutti-service/src/main/resources/i18n tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action tutti-ui-swing/src/main/resources/i18n
Author: tchemit Date: 2014-05-20 15:40:25 +0200 (Tue, 20 May 2014) New Revision: 1792 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1792 Log: fixes #5115 [EXPORT] Evolution format export SUMATRA pelgas Added: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -76,7 +76,6 @@ import org.apache.commons.vfs2.FileType; import org.nuiton.jaxx.application.ApplicationBusinessException; import org.nuiton.jaxx.application.ApplicationIOUtil; -import org.nuiton.jaxx.application.ApplicationTechnicalException; import org.nuiton.util.TimeLog; import org.nuiton.util.Version; @@ -86,9 +85,11 @@ import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.concurrent.Callable; import static org.nuiton.i18n.I18n.t; @@ -608,10 +609,12 @@ return null; } - public void fillSpeciesSurveyCode(Collection<Species> speciesList) { + public Set<String> fillSpeciesSurveyCode(Collection<Species> speciesList) { TuttiProtocol protocol = getProtocol(); + Set<String> badSpecies = new LinkedHashSet<>(); + if (protocol != null) { // fill available species from protocol if (!protocol.isSpeciesEmpty()) { @@ -622,19 +625,26 @@ SpeciesProtocol speciesProtocol = protocolMap.get(species.getReferenceTaxonId()); if (speciesProtocol == null || StringUtils.isEmpty(speciesProtocol.getSpeciesSurveyCode())) { - throw new ApplicationTechnicalException(t("tutti.error.species.not.in.protocol", species.getName())); + badSpecies.add(species.getName()); + continue; } species.setSurveyCode(speciesProtocol.getSpeciesSurveyCode()); } } } + + return badSpecies; } - public void fillBenthosSurveyCode(Collection<Species> benthosList) { + public Set<String> fillBenthosSurveyCode(Collection<Species> benthosList) { TuttiProtocol protocol = getProtocol(); + Set<String> badSpecies = new LinkedHashSet<>(); + if (protocol != null) { + + // fill available benthos from protocol if (!protocol.isBenthosEmpty()) { @@ -644,12 +654,15 @@ SpeciesProtocol speciesProtocol = protocolMap.get(species.getReferenceTaxonId()); if (speciesProtocol == null || StringUtils.isEmpty(speciesProtocol.getSpeciesSurveyCode())) { - throw new ApplicationTechnicalException(t("tutti.error.benthos.not.in.protocol", species.getName())); + badSpecies.add(species.getName()); + continue; } species.setSurveyCode(speciesProtocol.getSpeciesSurveyCode()); } } } + + return badSpecies; } public static final TimeLog TIME_LOG = new TimeLog(PersistenceService.class); Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -157,7 +157,8 @@ @Override public String format(Species s) { Preconditions.checkNotNull(s, t("tutti.service.error.species.null")); - return s.getSurveyCode(); + String surveyCode = s.getSurveyCode(); + return surveyCode == null ? "" : surveyCode; } }; Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -42,7 +42,8 @@ newColumnForExport(t("tutti.service.exportSumatra.header.year"), CatchRow.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.YEAR); newColumnForExport(t("tutti.service.exportSumatra.header.station"), CatchRow.PROPERTY_STATION_NUMBER); newColumnForExport(t("tutti.service.exportSumatra.header.multirigAggregation"), CatchRow.PROPERTY_MULTIRIG_AGGREGATION); - newColumnForExport(t("tutti.service.exportSumatra.header.species"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER); + newColumnForExport(t("tutti.service.exportSumatra.header.genuisSpecies"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_NAME_FORMATTER); + newColumnForExport(t("tutti.service.exportSumatra.header.surveySpecies"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER); newColumnForExport(t("tutti.service.exportSumatra.header.sign"), CatchRow.PROPERTY_SIGN); newColumnForExport(t("tutti.service.exportSumatra.header.sortedWeight"), CatchRow.PROPERTY_SORTED_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT); newColumnForExport(t("tutti.service.exportSumatra.header.totalWeight"), CatchRow.PROPERTY_TOTAL_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT); @@ -50,10 +51,10 @@ newColumnForExport(t("tutti.service.exportSumatra.header.averageSize"), CatchRow.PROPERTY_AVERAGE_SIZE, TuttiCsvUtil.FLOAT); newColumnForExport(t("tutti.service.exportSumatra.header.number"), CatchRow.PROPERTY_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport(t("tutti.service.exportSumatra.header.moule"), CatchRow.PROPERTY_MOULE, TuttiCsvUtil.FLOAT); - newColumnForExport(t("tutti.service.exportSumatra.header.startLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LATITUDE); - newColumnForExport(t("tutti.service.exportSumatra.header.startLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LONGITUDE); - newColumnForExport(t("tutti.service.exportSumatra.header.endLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LATITUDE); - newColumnForExport(t("tutti.service.exportSumatra.header.endLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LONGITUDE); + newColumnForExport(t("tutti.service.exportSumatra.header.startLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LATITUDE, TuttiCsvUtil.FLOAT); + newColumnForExport(t("tutti.service.exportSumatra.header.startLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, TuttiCsvUtil.FLOAT); + newColumnForExport(t("tutti.service.exportSumatra.header.endLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT); + newColumnForExport(t("tutti.service.exportSumatra.header.endLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT); } @Override Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -77,11 +77,12 @@ * * @param file where to generate report * @param cruiseId id of the cruise to export + * @return export result * @since 2.0 */ - public void exportCruiseForSumatra(File file, - String cruiseId, - ProgressionModel progressionModel) { + public SumatraExportResult exportCruiseForSumatra(File file, + String cruiseId, + ProgressionModel progressionModel) { Preconditions.checkNotNull(cruiseId, "Cannot export a null cruise"); Preconditions.checkNotNull(file, "Cannot export to a null file"); @@ -106,7 +107,11 @@ progressionModel.adaptTotal(operations.size() + 3); - prepareOperationsAndExport(file, operations, progressionModel); + SumatraExportResult result = new SumatraExportResult(); + + prepareOperationsAndExport(file, operations, progressionModel, result); + + return result; } /** @@ -115,12 +120,13 @@ * @param file where to generate report * @param cruiseId id of the cruise to export * @param fishingOperationId id of the fishing operation to export + * @return export result * @since 2.7 */ - public void exportFishingOperationForSumatra(File file, - String cruiseId, - String fishingOperationId, - ProgressionModel progressionModel) { + public SumatraExportResult exportFishingOperationForSumatra(File file, + String cruiseId, + String fishingOperationId, + ProgressionModel progressionModel) { Preconditions.checkNotNull(file, "Cannot export to a null file"); Preconditions.checkNotNull(cruiseId, "Cannot export a null cruise"); @@ -138,12 +144,17 @@ List<String> operations = Lists.newArrayList(fishingOperationId); - prepareOperationsAndExport(file, operations, progressionModel); + SumatraExportResult result = new SumatraExportResult(); + + prepareOperationsAndExport(file, operations, progressionModel, result); + + return result; } protected void prepareOperationsAndExport(File file, List<String> operations, - ProgressionModel progressionModel) { + ProgressionModel progressionModel, + SumatraExportResult result) { List<CatchRow> rows = Lists.newArrayList(); @@ -162,7 +173,7 @@ break; } - prepareFishingOperation(csvModel, rows, operationId); + prepareFishingOperation(csvModel, rows, operationId, result); } } @@ -184,7 +195,8 @@ protected void prepareFishingOperation(CatchRowModel csvModel, List<CatchRow> rows, - String operationId) { + String operationId, + SumatraExportResult result) { ExportCatchContext exportContext = ExportCatchContext.newExportContext( persistenceService, @@ -214,7 +226,9 @@ } // fill survey code in species - persistenceService.fillSpeciesSurveyCode(allspecies); + Set<String> badSpecies = persistenceService.fillSpeciesSurveyCode(allspecies); + result.setBadSpecies(badSpecies); + } // Benthos @@ -233,7 +247,8 @@ } // fill survey code in benthos - persistenceService.fillBenthosSurveyCode(allspecies); + Set<String> badBenthos = persistenceService.fillBenthosSurveyCode(allspecies); + result.setBadBenthos(badBenthos); } } } Added: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java (rev 0) +++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -0,0 +1,72 @@ +package fr.ifremer.tutti.service.export.sumatra; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 - 2014 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 org.apache.commons.collections4.CollectionUtils; + +import java.util.Set; + +/** + * Created on 5/20/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 3.4.4 + */ +public class SumatraExportResult { + + /** + * Name of species that are not well filled in protocol. + */ + protected Set<String> badSpecies; + + /** + * Name of benthos that are not well filled in protocol. + */ + protected Set<String> badBenthos; + + public Set<String> getBadSpecies() { + return badSpecies; + } + + public Set<String> getBadBenthos() { + return badBenthos; + } + + public void setBadSpecies(Set<String> badSpecies) { + this.badSpecies = badSpecies; + } + + public void setBadBenthos(Set<String> badSBenthos) { + this.badBenthos = badSBenthos; + } + + public boolean withBadSpecies() { + return CollectionUtils.isNotEmpty(badSpecies); + } + + public boolean withBadBenthos() { + return CollectionUtils.isNotEmpty(badBenthos); + } +} Property changes on: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-20 13:40:25 UTC (rev 1792) @@ -82,6 +82,7 @@ tutti.service.exportSumatra.header.averageWeight= tutti.service.exportSumatra.header.endLatitude= tutti.service.exportSumatra.header.endLongitude= +tutti.service.exportSumatra.header.genuisSpecies= tutti.service.exportSumatra.header.moule= tutti.service.exportSumatra.header.multirigAggregation= tutti.service.exportSumatra.header.number= @@ -91,6 +92,7 @@ tutti.service.exportSumatra.header.startLatitude= tutti.service.exportSumatra.header.startLongitude= tutti.service.exportSumatra.header.station= +tutti.service.exportSumatra.header.surveySpecies= tutti.service.exportSumatra.header.totalWeight= tutti.service.exportSumatra.header.weight= tutti.service.exportSumatra.header.year= Modified: branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties =================================================================== --- branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-20 13:40:25 UTC (rev 1792) @@ -1,5 +1,5 @@ -tutti.error.benthos.not.in.protocol=L'espèce (onglet Benthos) %s n'est pas déclarée dans le protocole. -tutti.error.species.not.in.protocol=L'espèce %s (onglet Espèce) n'est pas déclarée dans le protocole. +tutti.error.benthos.not.in.protocol=Les espèces suivantes (onglet Benthos) ne sont déclarées dans le protocole \: %s. +tutti.error.species.not.in.protocol=Les espèces suivantes (onglet Espèce) ne sont pas déclarées dans le protocole \: %s. tutti.io.mkDir.error=Erreur à la création du dossier %s tutti.property.attachment=Pièce jointe tutti.property.caracteristic=Caractéristique @@ -81,15 +81,16 @@ tutti.service.exportSumatra.header.averageWeight=poidsmoy tutti.service.exportSumatra.header.endLatitude=latitudefin tutti.service.exportSumatra.header.endLongitude=longitudefin +tutti.service.exportSumatra.header.genuisSpecies=especescientifique tutti.service.exportSumatra.header.moule=moule tutti.service.exportSumatra.header.multirigAggregation=poche tutti.service.exportSumatra.header.number=nbindividus tutti.service.exportSumatra.header.sign=signe tutti.service.exportSumatra.header.sortedWeight=tri -tutti.service.exportSumatra.header.species=espece tutti.service.exportSumatra.header.startLatitude=latitudedebut tutti.service.exportSumatra.header.startLongitude=longitudedebut tutti.service.exportSumatra.header.station=station +tutti.service.exportSumatra.header.surveySpecies=espececampagne tutti.service.exportSumatra.header.totalWeight=total tutti.service.exportSumatra.header.weight=total tutti.service.exportSumatra.header.year=annee Modified: branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java =================================================================== --- branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -61,10 +61,10 @@ public static final String OPERATION_BAD_3_ID = "100115"; public static final String EXPORT_CONTENT = - "annee;station;poche;espece;signe;tri;total;poidsmoy;longueurmoy;nbindividus;moule;latitudedebut;longitudedebut;latitudefin;longitudefin\n" + - "2013;A;1;CHAMMAG;;100.0;100.0;2.5;;40;0.4;;;;\n" + - "2013;A;1;ECHIGAM;;100.0;100.0;0.23980816;;417;4.17;;;;\n" + - "2013;A;1;BRISATLAN;;100.0;100.0;1.0638298;10.571428;94;0.94;;;;"; + "annee;station;poche;especescientifique;espececampagne;signe;tri;total;poidsmoy;longueurmoy;nbindividus;moule;latitudedebut;longitudedebut;latitudefin;longitudefin\n" + + "2013;A;1;Chama magna;CHAMMAG;;100.0;100.0;2.5;;40;0.4;;;;\n" + + "2013;A;1;Echinogammarus;ECHIGAM;;100.0;100.0;0.23980816;;417;4.17;;;;\n" + + "2013;A;1;Brissopsis atlantica;BRISATLAN;;100.0;100.0;1.0638298;10.571428;94;0.94;;;;"; protected CatchesSumatraExportService service; Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java =================================================================== --- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -28,6 +28,7 @@ import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportService; +import fr.ifremer.tutti.service.export.sumatra.SumatraExportResult; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -52,6 +53,8 @@ protected File file; + protected SumatraExportResult sumatraExportResult; + public ExportCruiseForSumatraAction(MainUIHandler handler) { super(handler, false); } @@ -91,6 +94,7 @@ @Override public void releaseAction() { file = null; + sumatraExportResult = null; super.releaseAction(); } @@ -111,13 +115,38 @@ // export catches CatchesSumatraExportService service = getContext().getCatchesSumatraExportService(); - service.exportCruiseForSumatra(file, cruise.getId(), pm); + sumatraExportResult = service.exportCruiseForSumatra(file, cruise.getId(), pm); } @Override public void postSuccessAction() { super.postSuccessAction(); + + if (sumatraExportResult.withBadSpecies()) { + + StringBuilder badSpeciesList = new StringBuilder(); + for (String s : sumatraExportResult.getBadSpecies()) { + badSpeciesList.append("<li>").append(s); + } + + displayWarningMessage( + t("tutti.exportFishingOperationForSumatra.title.badSpecies"), + t("tutti.exportFishingOperationForSumatra.message.badSpecies", badSpeciesList.toString())); + } + + if (sumatraExportResult.withBadBenthos()) { + + StringBuilder badBenthosList = new StringBuilder(); + for (String s : sumatraExportResult.getBadBenthos()) { + badBenthosList.append("<li>").append(s); + } + + displayWarningMessage( + t("tutti.exportFishingOperationForSumatra.title.badBenthos"), + t("tutti.exportFishingOperationForSumatra.message.badBenthos", badBenthosList.toString())); + } + sendMessage(t("tutti.exportCruiseForSumatra.action.success", file)); } } Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java =================================================================== --- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java 2014-05-20 13:40:25 UTC (rev 1792) @@ -29,6 +29,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportService; +import fr.ifremer.tutti.service.export.sumatra.SumatraExportResult; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; @@ -55,6 +56,8 @@ protected File file; + protected SumatraExportResult sumatraExportResult; + public ExportFishingOperationForSumatraAction(EditCatchesUIHandler handler) { super(handler, true); } @@ -105,6 +108,7 @@ @Override public void releaseAction() { file = null; + sumatraExportResult = null; super.releaseAction(); } @@ -128,16 +132,42 @@ // export catches CatchesSumatraExportService service = getContext().getCatchesSumatraExportService(); - service.exportFishingOperationForSumatra(file, - cruise.getId(), - fishingOperation.getId(), - pm); + sumatraExportResult = service.exportFishingOperationForSumatra(file, + cruise.getId(), + fishingOperation.getId(), + pm); + } @Override public void postSuccessAction() { super.postSuccessAction(); + + if (sumatraExportResult.withBadSpecies()) { + + StringBuilder badSpeciesList = new StringBuilder(); + for (String s : sumatraExportResult.getBadSpecies()) { + badSpeciesList.append("<li>").append(s); + } + + displayWarningMessage( + t("tutti.exportFishingOperationForSumatra.title.badSpecies"), + t("tutti.exportFishingOperationForSumatra.message.badSpecies", badSpeciesList.toString())); + } + + if (sumatraExportResult.withBadBenthos()) { + + StringBuilder badBenthosList = new StringBuilder(); + for (String s : sumatraExportResult.getBadBenthos()) { + badBenthosList.append("<li>").append(s); + } + + displayWarningMessage( + t("tutti.exportFishingOperationForSumatra.title.badBenthos"), + t("tutti.exportFishingOperationForSumatra.message.badBenthos", badBenthosList.toString())); + } + sendMessage(t("tutti.exportFishingOperationForSumatra.action.success", file)); } } Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-20 13:40:25 UTC (rev 1792) @@ -1142,8 +1142,12 @@ tutti.exportDb.step.reloadApplication= tutti.exportFishingOperationForSumatra.action.chooseFile= tutti.exportFishingOperationForSumatra.action.success= +tutti.exportFishingOperationForSumatra.message.badBenthos= +tutti.exportFishingOperationForSumatra.message.badSpecies= tutti.exportFishingOperationForSumatra.message.model.modified=Catch was modified, please save it before launching an export. tutti.exportFishingOperationForSumatra.message.required.protocol= +tutti.exportFishingOperationForSumatra.title.badBenthos= +tutti.exportFishingOperationForSumatra.title.badSpecies= tutti.exportFishingOperationForSumatra.title.choose.exportFile= tutti.exportFishingOperationForSumatra.title.model.modified=Can't export, catch is modified tutti.exportFishingOperationForSumatra.title.required.protocol= Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-19 19:10:43 UTC (rev 1791) +++ branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-20 13:40:25 UTC (rev 1792) @@ -1125,8 +1125,12 @@ tutti.exportDb.step.reloadApplication=Redémarrage de l'application tutti.exportFishingOperationForSumatra.action.chooseFile=Choisir le fichier d'export tutti.exportFishingOperationForSumatra.action.success=Le trait a été exporté dans le fichier <strong>%s</strong> +tutti.exportFishingOperationForSumatra.message.badBenthos=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Benthos) ont été détectées \: <ul>%s</ul></body></html> +tutti.exportFishingOperationForSumatra.message.badSpecies=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Espèce) ont été détectées \: <ul>%s</ul></body></html> tutti.exportFishingOperationForSumatra.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export. tutti.exportFishingOperationForSumatra.message.required.protocol=<html><body>Pour faire un export csv, un protocol est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.</body></html> +tutti.exportFishingOperationForSumatra.title.badBenthos=Espèces non présentes dans le protocole (onglet Benthos) +tutti.exportFishingOperationForSumatra.title.badSpecies=Espèces non présentes dans le protocole (onglet Espèce) tutti.exportFishingOperationForSumatra.title.choose.exportFile=Exporter le trait de la campagne tutti.exportFishingOperationForSumatra.title.model.modified=Impossible d'exporter, capture modifiée tutti.exportFishingOperationForSumatra.title.required.protocol=Protocole requis pour export csv
participants (1)
-
tchemit@users.forge.codelutin.com