branch feature/8116-warning-ecrasement created (now 29edf84)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8116-warning-ecrasement in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git at 29edf84 ajout d'un veto pour ne pas écraser les poids saisi (fixes #8116) This branch includes the following new commits: new 29edf84 ajout d'un veto pour ne pas écraser les poids saisi (fixes #8116) The 1 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 29edf84cbce012a0fb43119bab23c1a1f4964c65 Author: Kevin Morin <morin@codelutin.com> Date: Thu Mar 17 19:15:15 2016 +0100 ajout d'un veto pour ne pas écraser les poids saisi (fixes #8116) -- 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 feature/8116-warning-ecrasement in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 29edf84cbce012a0fb43119bab23c1a1f4964c65 Author: Kevin Morin <morin@codelutin.com> Date: Thu Mar 17 19:15:15 2016 +0100 ajout d'un veto pour ne pas écraser les poids saisi (fixes #8116) --- .../species/frequency/SpeciesFrequencyUI.jaxx | 3 ++- .../frequency/SpeciesFrequencyUIHandler.java | 29 ++++++++++++++++++++++ .../species/frequency/SpeciesFrequencyUIModel.java | 17 +++++++++---- .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 +++ 5 files changed, 49 insertions(+), 6 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx index 2741ce3..cbec70d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx @@ -103,7 +103,8 @@ public SpeciesFrequencyUI(TuttiUI parentUI) { </JToolBar> <JToolBar id="frequenciesToolBar"> - <JCheckBox id='copyRtpWeightsCheckBox' onItemStateChanged='handler.setBoolean(event, "copyRtpWeights")'/> + <!-- use actionperformed otherwise the event is triggered twice when the confirm dialog is shown --> + <JCheckBox id='copyRtpWeightsCheckBox' onActionPerformed='model.setCopyRtpWeights(copyRtpWeightsCheckBox.isSelected())'/> <JButton id='graphAverageWeightButton' onActionPerformed="handler.showAverageWeightsHistogram()"/> </JToolBar> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java index afffb38..1816786 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java @@ -530,6 +530,35 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci ); }); + // Pour bloquer le changement de copie des poids rtp s'il y a deja des poids + model.addVetoableChangeListener(SpeciesFrequencyUIModel.PROPERTY_COPY_RTP_WEIGHTS, evt -> { + + boolean newCopyRtpWeights = (boolean) evt.getNewValue(); + + if (newCopyRtpWeights) { + + long rowsWithUserData = model.getRows().stream().filter(SpeciesFrequencyRowModel::withWeight).count(); + + if (rowsWithUserData > 0) { + + String htmlMessage = String.format( + CONFIRMATION_FORMAT, + t("tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message"), + t("tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.help")); + int i = JOptionPane.showConfirmDialog( + getTopestUI(), + htmlMessage, + t("tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (i == JOptionPane.CANCEL_OPTION) { + throw new PropertyVetoException("The user does not want to erase his data.", evt); + } + } + } + }); + model.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_COPY_RTP_WEIGHTS, evt -> { getModel().getRows().forEach(row -> getModel().computeRowWeightWithRtp(row)); getModel().reloadRows(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java index 41995d7..d74b958 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java @@ -89,8 +89,6 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public static final String PROPERTY_TOTAL_NUMBER = "totalNumber"; -// public static final String PROPERTY_TOTAL_COMPUTED_OR_NOT_WEIGHT = "totalComputedOrNotWeight"; - public static final String PROPERTY_TOTAL_WEIGHT = "totalWeight"; public static final String PROPERTY_TOTAL_COMPUTED_WEIGHT = "totalComputedWeight"; @@ -608,9 +606,18 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa } public void setCopyRtpWeights(boolean copyRtpWeights) { - Object oldValue = isCopyRtpWeights(); - this.copyRtpWeights = copyRtpWeights; - firePropertyChange(PROPERTY_COPY_RTP_WEIGHTS, oldValue, copyRtpWeights); + boolean oldValue = isCopyRtpWeights(); + try { + fireVetoableChange(PROPERTY_COPY_RTP_WEIGHTS, oldValue, copyRtpWeights); + this.copyRtpWeights = copyRtpWeights; + firePropertyChange(PROPERTY_COPY_RTP_WEIGHTS, oldValue, copyRtpWeights); + + } catch (PropertyVetoException e) { + if (log.isErrorEnabled()) { + log.error("error in setting copyRtpWeights", e); + } + firePropertyChange(PROPERTY_COPY_RTP_WEIGHTS, copyRtpWeights, oldValue); + } } public boolean isAddIndividualObservationOnRafale() { 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 6cca7c3..748d8a0 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 @@ -1537,6 +1537,9 @@ tutti.editSpeciesFrequencies.averageWeight.label= tutti.editSpeciesFrequencies.changeCopyMode.confirm.help= tutti.editSpeciesFrequencies.changeCopyMode.confirm.message= tutti.editSpeciesFrequencies.changeCopyMode.confirm.title= +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.help= +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message= +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.title= tutti.editSpeciesFrequencies.error.itchyometer.bad.record= tutti.editSpeciesFrequencies.error.length.doublon= tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale= 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 ff69d2e..ba70112 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 @@ -1438,6 +1438,9 @@ tutti.editSpeciesFrequencies.averageWeight.label=Poids moyen tutti.editSpeciesFrequencies.changeCopyMode.confirm.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas changer de mode de copie</li><li><strong>OK</strong> pour changer de mode de copie et supprimer les données saisies</li></ul> tutti.editSpeciesFrequencies.changeCopyMode.confirm.message=Vous êtes sur le point de changer de mode de copie alors que des données ont été saisies dans les mensurations.<br/>Si vous changez de mode, les données vont être supprimées. tutti.editSpeciesFrequencies.changeCopyMode.confirm.title=Changement de mode de copie +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas copier les poids calculés via les RTP</li><li><strong>OK</strong> pour copier les poids calculés via les RTP et supprimer les données saisies</li></ul> +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message=Vous êtes sur le point de remplacer les poids saisis par les poids calculés via les RTP.<br/>Si vous les remplacez, les données saisies seront perdues. +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.title=Copier les poids calculés via les RTP tutti.editSpeciesFrequencies.error.itchyometer.bad.record=La mesure provenant de l'ichtyomètre n'est pas valide (la donnée est peut-être corrompue) \:<br/><ul><li>Enregistrement \: <strong>%s</strong></li><li>CRC \: <strong>%s</strong></li><li>CRC calculé \: <strong>%s</strong></li></ul> tutti.editSpeciesFrequencies.error.length.doublon=La classe de taille <strong>%s</strong> est utilisée plusieurs fois (deuxième occurrence trouvée à la ligne <strong>%s</strong>), ce qui n'est pas autorisé.<hr/>Veuillez corriger cela pour pouvoir enregistrer les mensurations. tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale=Ajouter aux observations individuelles -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm