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 6181678977b183757cd7aa9aa10137f334b776d4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Mar 14 16:23:04 2016 +0100 Ajout avertissement avant import multi-poste si des données existent (See #8119) --- .../ImportMultiPostSpeciesSupportAction.java | 60 ++++++++++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 4 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 5 ++ 3 files changed, 69 insertions(+) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java index 13cbea6..dc1c8b0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java @@ -36,12 +36,16 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.Spe import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; +import javax.swing.JOptionPane; import java.io.File; import java.util.List; import java.util.Map; import java.util.Optional; +import static org.nuiton.i18n.I18n.t; + /** * @author Tony Chemit - chemit@codelutin.com * @since 4.5 @@ -60,6 +64,62 @@ public abstract class ImportMultiPostSpeciesSupportAction extends ImportMultiPos public abstract boolean isImportIndivudalObservations(); @Override + public boolean prepareAction() throws Exception { + boolean doAction = super.prepareAction(); + + if (doAction) { + + String message = "<ul>"; + boolean ask = false; + if (isImportFrequencies() && getModel().getRowCount() > 0) { + ask = true; + message = "<li>" + t("tutti.askBeforeMultiPostImport.frequencies.message") + "</li>"; + } + + if (isImportIndivudalObservations() && getModel().getIndividualObservationRows().size() > 0) { + ask = true; + message += "<li>" + t("tutti.askBeforeMultiPostImport.frequencies.message") + "</li>"; + } + message += "</ul>"; + + if (ask) { + + String htmlMessage = String.format(AbstractApplicationUIHandler.CONFIRMATION_FORMAT, + t("tutti.askBeforeMultiPostImport.message", message), + t("tutti.askBeforeMultiPostImport.help")); + + int saveResponse = JOptionPane.showOptionDialog( + getHandler().getTopestUI(), + htmlMessage, + t("tutti.askBeforeMultiPostImport.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + new String[]{t("tutti.option.cleanAndImport"), t("tutti.option.cancelImport")}, + t("tutti.option.cleanAndImport")); + + switch (saveResponse) { + case 0: + + // do action + doAction = true; + break; + case 1: + + // cancel import + doAction = false; + + } + + + } + } + + return doAction; + + } + + @Override protected final Map<String, Object> importBatches(MultiPostImportService multiPostImportExportService, File file, FishingOperation operation) { SpeciesBatch speciesBatch = getModel().getBatch().toEntity(); 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 15e2788..28567e9 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 @@ -45,6 +45,10 @@ tutti.applicationUpdater.updateDone.deleteDirectory.caches.error= tutti.applicationUpdater.updateDone.deleteDirectory.dbConf.error= tutti.applicationUpdater.updateDone.deleteDirectory.enum.error= tutti.applicationUpdater.updateDone.deleteDirectory.i18n.error= +tutti.askBeforeMultiPostImport.frequencies.message= +tutti.askBeforeMultiPostImport.help= +tutti.askBeforeMultiPostImport.message= +tutti.askBeforeMultiPostImport.title= tutti.askToSaveCatch.help= tutti.askToSaveCatch.message= tutti.askToSaveCatch.title= 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 f5e2d2c..c191c3f 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 @@ -30,6 +30,11 @@ tutti.applicationUpdater.updateDone.deleteDirectory.caches.error=Erreur lors de tutti.applicationUpdater.updateDone.deleteDirectory.dbConf.error=Erreur lors de la suppression du dossier de configuration de base de données tutti.applicationUpdater.updateDone.deleteDirectory.enum.error=Erreur lors de la suppression du dossier d'énumération tutti.applicationUpdater.updateDone.deleteDirectory.i18n.error=Erreur lors de la suppression du dossier d'internationalisation +tutti.askBeforeMultiPostImport.frequencies.message=Des mensurations existent +tutti.askBeforeMultiPostImport.help=Que voulez-vous faire ?<ul><li><strong>Annuler l'import</strong> pour annuler l'opération d'import</li><li><strong>Réaliser l'import</strong> pour supprimer les données existantes puis réaliser l'import</li></ul> +tutti.askBeforeMultiPostImport.individualObservations.message=Des observations individuelles existent +tutti.askBeforeMultiPostImport.message=%s<br/>Elles seront supprimées avant l'import. +tutti.askBeforeMultiPostImport.title=Des données existent; elles seront supprimées avant l'import ! tutti.askToSaveCatch.message=Des modifications sur la capture ne sont pas enregistrées tutti.askToSaveCatch.title=Modifications non enregistrées sur la capture tutti.askToSaveCatchBeforeExport.help=Que voulez-vous faire ?<ul><li><strong>Annuler l'export</strong> pour annuler l'opération d'export</li><li><strong>Ne pas enregistrer les modifications</strong> pour réaliser l'export sur les données non modifiées</li><li><strong>Enregistrer les modifications</strong> pour enregistrer les modifications puis réaliser l'export</li></ul> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.