branch develop updated (18011f5 -> effa1a7)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git from 18011f5 livrable #8153 Merge branch 'feature/8153' into develop new 9488922 Demander de sauvegarder avant l'export multi-poste si des modifications sur le modèle (Fixes #8199) new effa1a7 livrable #8199 Merge branch 'feature/8199' into develop The 2 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 effa1a72c2fa917343ab436bdd69d73c9943b4a6 Merge: 18011f5 9488922 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Mar 31 20:21:34 2016 +0200 livrable #8199 Merge branch 'feature/8199' into develop commit 9488922d6a8bb69b2d663682e4b8b365936e5854 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Mar 31 20:21:30 2016 +0200 Demander de sauvegarder avant l'export multi-poste si des modifications sur le modèle (Fixes #8199) Summary of changes: .../actions/ExportMultiPostActionSupport.java | 95 ++++++++++++++-------- .../frequency/SpeciesFrequencyCellComponent.java | 9 +- .../ExportMultiPostSpeciesSupportAction.java | 42 +++++++++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 + 5 files changed, 115 insertions(+), 37 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 https://gitlab.nuiton.org/codelutin/tutti.git commit 9488922d6a8bb69b2d663682e4b8b365936e5854 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Mar 31 20:21:30 2016 +0200 Demander de sauvegarder avant l'export multi-poste si des modifications sur le modèle (Fixes #8199) --- .../actions/ExportMultiPostActionSupport.java | 95 ++++++++++++++-------- .../frequency/SpeciesFrequencyCellComponent.java | 9 +- .../ExportMultiPostSpeciesSupportAction.java | 42 +++++++++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 + 5 files changed, 115 insertions(+), 37 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ExportMultiPostActionSupport.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ExportMultiPostActionSupport.java index 41fed1b..8e40b9c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ExportMultiPostActionSupport.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/actions/ExportMultiPostActionSupport.java @@ -26,11 +26,11 @@ import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.catches.multipost.MultiPostExportService; -import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUI; +import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import org.jdesktop.beans.AbstractBean; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; @@ -49,7 +49,7 @@ public abstract class ExportMultiPostActionSupport<M extends AbstractBean, UI ex /** * Do save the catches before export. */ - private Boolean doSaveCatches; + private Boolean doSaveBeforeExport; /** * File to export. @@ -81,45 +81,63 @@ public abstract class ExportMultiPostActionSupport<M extends AbstractBean, UI ex return getUI().getParentContainer(EditCatchesUI.class); } - @Override - public final boolean prepareAction() throws Exception { + /** + * Demande si il faut sauvegarder les données de l'écran avant de lancer l'export. + * + * @return {@code null} si pas de sauvegarde à faire, + * {@code 0} si on doit effectuer la sauvegarde avant l'export, {@code 1} pour ne rien faire avant l'export, {@code 2} pour annuler l'action + * @since 4.5 + */ + protected Integer askToSaveBeforeExport() { - boolean doAction = super.prepareAction(); + EditCatchesUIModel model = getEditCatchUI().getModel(); - if (doAction) { + Integer doSaveBeforeExportResponse = null; - doSaveCatches = false; + boolean canSave = model.isModify() && model.isValid(); + if (canSave) { - EditCatchesUI catchesUI = getEditCatchUI(); - EditCatchesUIModel model = catchesUI.getModel(); + String htmlMessage = String.format( + AbstractApplicationUIHandler.CONFIRMATION_FORMAT, + t("tutti.askToSaveCatch.message"), + t("tutti.askToSaveCatchBeforeExport.help")); - fishingOperation = model.getFishingOperation(); + doSaveBeforeExportResponse = JOptionPane.showOptionDialog(getHandler().getTopestUI(), + htmlMessage, + t("tutti.askToSaveCatch.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + new String[]{t("tutti.option.saveCatch"), t("tutti.option.notSaveCatch"), t("tutti.option.cancelExport")}, + t("tutti.option.saveCatch")); - boolean canSave = model.isModify() && model.isValid(); - // ask user to save before export (otherwise some data won't be exported) + } - if (canSave) { + return doSaveBeforeExportResponse; - String htmlMessage = String.format( - AbstractApplicationUIHandler.CONFIRMATION_FORMAT, - t("tutti.askToSaveCatch.message"), - t("tutti.askToSaveCatchBeforeExport.help")); + } - int saveResponse = JOptionPane.showOptionDialog(getHandler().getTopestUI(), - htmlMessage, - t("tutti.askToSaveCatch.title"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, - null, - new String[]{t("tutti.option.saveCatch"), t("tutti.option.notSaveCatch"), t("tutti.option.cancelExport")}, - t("tutti.option.saveCatch")); + @Override + public final boolean prepareAction() throws Exception { - switch (saveResponse) { + boolean doAction = super.prepareAction(); + + if (doAction) { + + fishingOperation = getEditCatchUI().getModel().getFishingOperation(); + + Integer doSaveBeforeExportResponse = askToSaveBeforeExport(); + + doSaveBeforeExport = false; + + if (doSaveBeforeExportResponse != null) { + + switch (doSaveBeforeExportResponse) { case 0: // should save - doSaveCatches = true; + doSaveBeforeExport = true; break; case 1: @@ -129,6 +147,7 @@ public abstract class ExportMultiPostActionSupport<M extends AbstractBean, UI ex // cancel import doAction = false; + break; } } @@ -155,21 +174,27 @@ public abstract class ExportMultiPostActionSupport<M extends AbstractBean, UI ex } + protected void saveBeforeExport() { + + getProgressionModel().increments("Sauvegarde de la capture"); + + // save catches before export + + EditCatchesUI catchesUI = getEditCatchUI(); + getActionEngine().runInternalAction(catchesUI.getHandler(), SaveCatchBatchAction.class); + + } + @Override public final void doAction() throws Exception { - if (doSaveCatches) { + if (doSaveBeforeExport) { setProgressionModel(new ProgressionModel()); ProgressionModel progressionModel = getProgressionModel(); progressionModel.setTotal(2); - progressionModel.increments("Sauvegarde de la capture"); - - // save catches before export - - EditCatchesUI catchesUI = getEditCatchUI(); - getActionEngine().runInternalAction(catchesUI.getHandler(), SaveCatchBatchAction.class); + saveBeforeExport(); progressionModel.increments("Lancement de l'export"); @@ -187,7 +212,7 @@ public abstract class ExportMultiPostActionSupport<M extends AbstractBean, UI ex public final void releaseAction() { file = null; fishingOperation = null; - doSaveCatches = null; + doSaveBeforeExport = null; super.releaseAction(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java index 626774e..8c9d1c5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyCellComponent.java @@ -221,7 +221,8 @@ public class SpeciesFrequencyCellComponent extends DefaultTableCellRenderer { parent.getHandler().editSpeciesFrequencies(this); } - public void save(SpeciesFrequencyUIModel frequencyModel, boolean quit) { + public void save(SpeciesFrequencyUIModel frequencyModel) { + if (frequencyModel.isValid()) { // at close, synch back frequencies @@ -286,6 +287,12 @@ public class SpeciesFrequencyCellComponent extends DefaultTableCellRenderer { ui.getHandler().updateTotalFromFrequencies(editRow); } + } + + public void save(SpeciesFrequencyUIModel frequencyModel, boolean quit) { + + save(frequencyModel); + if (quit) { int r = rowIndex; int c = columnIndex; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesSupportAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesSupportAction.java index 2e4f379..40a2323 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesSupportAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ExportMultiPostSpeciesSupportAction.java @@ -25,14 +25,18 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.ac import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.service.catches.multipost.MultiPostExportService; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; import fr.ifremer.tutti.ui.swing.content.operation.catches.actions.ExportMultiPostActionSupport; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; +import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; +import javax.swing.JOptionPane; import java.io.File; +import static org.nuiton.i18n.I18n.t; + /** * @author Tony Chemit - chemit@codelutin.com * @since 4.5 @@ -58,4 +62,40 @@ public abstract class ExportMultiPostSpeciesSupportAction extends ExportMultiPos } + @Override + protected Integer askToSaveBeforeExport() { + + SpeciesFrequencyUIModel model = getModel(); + + Integer doSaveBeforeExportResponse = null; + + boolean canSave = model.isModify() && model.isValid(); + if (canSave) { + + String htmlMessage = String.format( + AbstractApplicationUIHandler.CONFIRMATION_FORMAT, + t("tutti.askToSaveFrequenciesOrIndividualObservations.message"), + t("tutti.askToSaveFrequenciesOrIndividualObservations.help")); + + doSaveBeforeExportResponse = JOptionPane.showOptionDialog(getHandler().getTopestUI(), + htmlMessage, + t("tutti.askToSaveFrequenciesOrIndividualObservations.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + new String[]{t("tutti.option.saveCatch"), t("tutti.option.notSaveCatch"), t("tutti.option.cancelExport")}, + t("tutti.option.saveCatch")); + + } + + return doSaveBeforeExportResponse; + + } + + @Override + protected void saveBeforeExport() { + + getHandler().getFrequencyEditor().save(getModel()); + + } } 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 518fe4c..e9c7a23 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 @@ -62,6 +62,9 @@ tutti.askToSaveCatch.message= tutti.askToSaveCatch.title= tutti.askToSaveCatchBeforeExport.help= tutti.askToSaveCatchBeforeImport.help= +tutti.askToSaveFrequenciesOrIndividualObservations.help= +tutti.askToSaveFrequenciesOrIndividualObservations.message= +tutti.askToSaveFrequenciesOrIndividualObservations.title= tutti.attachmentEditor.action= tutti.attachmentEditor.action.add.mnemonic= tutti.attachmentEditor.action.add.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 90e313d..867d16b 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 @@ -46,6 +46,9 @@ tutti.askToSaveCatch.message=Des modifications sur la capture ne sont pas enregi 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> tutti.askToSaveCatchBeforeImport.help=Que voulez-vous faire ?<ul><li><strong>Annuler l'import</strong> pour annuler l'opération d'import</li><li><strong>Annuler les modifications</strong> pour annuler les modifications avant de réaliser l'import</li><li><strong>Enregistrer les modifications</strong> pour enregistrer les modifications puis réaliser l'import</li></ul> +tutti.askToSaveFrequenciesOrIndividualObservations.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> +tutti.askToSaveFrequenciesOrIndividualObservations.message=Des modifications ne sont pas enregistrées +tutti.askToSaveFrequenciesOrIndividualObservations.title=Modifications non enregistrées sur les mensurations ou observations individuelles tutti.attachmentEditor.action.add.mnemonic=A tutti.attachmentEditor.action.add.tip=Ajouter une pièce jointe tutti.attachmentEditor.action.closeAttachment.tip=Fermer la fenêtre des pièces-jointes -- 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 https://gitlab.nuiton.org/codelutin/tutti.git commit effa1a72c2fa917343ab436bdd69d73c9943b4a6 Merge: 18011f5 9488922 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Mar 31 20:21:34 2016 +0200 livrable #8199 Merge branch 'feature/8199' into develop .../actions/ExportMultiPostActionSupport.java | 95 ++++++++++++++-------- .../frequency/SpeciesFrequencyCellComponent.java | 9 +- .../ExportMultiPostSpeciesSupportAction.java | 42 +++++++++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 + 5 files changed, 115 insertions(+), 37 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm