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 c47e59e90f363b6b8f3baa4eda895f7ff71a47c0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 22 13:13:40 2016 +0200 Revue du changement de mode de recopie --- .../IndividualObservationBatchTableHandler.java | 59 ------------------ .../species/frequency/SpeciesFrequencyUI.jaxx | 6 +- .../frequency/SpeciesFrequencyUIHandler.java | 70 ++++++++++++++++++++++ .../species/frequency/SpeciesFrequencyUIModel.java | 33 ++++------ 4 files changed, 83 insertions(+), 85 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java index 43087ae..044e782 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java @@ -40,11 +40,9 @@ import org.jdesktop.swingx.table.TableColumnExt; import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; -import javax.swing.JOptionPane; import javax.swing.event.TableModelEvent; import java.awt.Color; import java.beans.PropertyChangeListener; -import java.beans.PropertyVetoException; import java.io.Closeable; import java.util.ArrayList; import java.util.Collection; @@ -57,9 +55,6 @@ import java.util.Optional; import java.util.Set; import java.util.function.Function; -import static org.nuiton.i18n.I18n.t; -import static org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler.CONFIRMATION_FORMAT; - /** * To manage individual observations. * @@ -483,60 +478,6 @@ public class IndividualObservationBatchTableHandler implements Closeable { model2.addPropertyChangeListener(IndividualObservationBatchUIModel.PROPERTY_ROWS, evt -> individualObservationTableModel.setRows((List<IndividualObservationBatchRowModel>) evt.getNewValue())); - // Pour bloquer le changement du mode de recopie des observations individuelles → mensurations - model.addVetoableChangeListener(SpeciesFrequencyUIModel.PROPERTY_COPY_INDIVIDUAL_OBSERVATION_MODE, evt -> { - - SpeciesFrequencyUIModel source = (SpeciesFrequencyUIModel) evt.getSource(); - CopyIndividualObservationMode oldCopyMode = (CopyIndividualObservationMode) evt.getOldValue(); - CopyIndividualObservationMode newCopyMode = (CopyIndividualObservationMode) evt.getNewValue(); - - if (source.isInitBatchEdition()) { - - if (log.isInfoEnabled()) { - log.info("Skip ask user to confirm copyIndividualObservationMode changed from " + oldCopyMode + " to " + newCopyMode); - } - return; - } - - // le seul mode où l'utilisateur ne peut rien saisir est le mode tout - if (CopyIndividualObservationMode.ALL != oldCopyMode) { - - long rowsWithUserData; - - // si on etait en mode taille et que l'utilisateur avait saisi des tailles - if (CopyIndividualObservationMode.SIZE == oldCopyMode) { - rowsWithUserData = model.getRows().stream() - .filter(SpeciesFrequencyRowModel::withWeight) - .count(); - - } else { - rowsWithUserData = model.getRows().stream() - .filter(row -> row.withLengthStep() || row.withNumber() || row.withWeight()) - .count(); - } - - if (rowsWithUserData > 0) { - - String htmlMessage = String.format( - CONFIRMATION_FORMAT, - t("tutti.editSpeciesFrequencies.changeCopyMode.confirm.message"), - t("tutti.editSpeciesFrequencies.changeCopyMode.confirm.help")); - int i = JOptionPane.showConfirmDialog( - uiHandler.getTopestUI(), - htmlMessage, - t("tutti.editSpeciesFrequencies.changeCopyMode.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); - } - } - - } - - }); - // Pour mettre à jour les mensurations suite au changement du mode de recopie des observations individuelles model.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_COPY_INDIVIDUAL_OBSERVATION_MODE, evt -> { 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 dd24f4d..659f719 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 @@ -124,11 +124,11 @@ protected int getLengthStepPanelPreferedWidth() { <JToolBar id="copyToSizeToolBar"> <JLabel id='copyToSizeTableLabel'/> <JRadioButton id='copyAllButton' - onActionPerformed='model.setCopyIndividualObservationMode(CopyIndividualObservationMode.ALL)'/> + onActionPerformed='handler.setCopyIndividualObservationMode(CopyIndividualObservationMode.ALL)'/> <JRadioButton id='copyNothingButton' - onActionPerformed='model.setCopyIndividualObservationMode(CopyIndividualObservationMode.NOTHING)'/> + onActionPerformed='handler.setCopyIndividualObservationMode(CopyIndividualObservationMode.NOTHING)'/> <JRadioButton id='copySizesButton' - onActionPerformed='model.setCopyIndividualObservationMode(CopyIndividualObservationMode.SIZE)'/> + onActionPerformed='handler.setCopyIndividualObservationMode(CopyIndividualObservationMode.SIZE)'/> </JToolBar> <JPopupMenu id='obsTablePopup'> 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 321da99..51f46cf 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 @@ -635,6 +635,76 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci return individualObservationBatchTableHandler.getIndividualObservationUICache(); } + public void setCopyIndividualObservationMode(CopyIndividualObservationMode newCopyMode) { + + SpeciesFrequencyUIModel model = getModel(); + + if (model.isInitBatchEdition()) { + + if (log.isInfoEnabled()) { + log.info("Skip ask user to confirm copyIndividualObservationMode changed from " + model.getCopyIndividualObservationMode() + " to " + newCopyMode); + } + return; + } + + // le seul mode où l'utilisateur ne peut rien saisir est le mode tout + if (!model.isCopyIndividualObservationAll()) { + + long rowsWithUserData; + + // si on etait en mode taille et que l'utilisateur avait saisi des tailles + if (model.isCopyIndividualObservationSize()) { + rowsWithUserData = model.getRows().stream() + .filter(SpeciesFrequencyRowModel::withWeight) + .count(); + + } else { + rowsWithUserData = model.getRows().stream() + .filter(row -> row.withLengthStep() || row.withNumber() || row.withWeight()) + .count(); + } + + if (rowsWithUserData > 0) { + + String htmlMessage = String.format( + CONFIRMATION_FORMAT, + t("tutti.editSpeciesFrequencies.changeCopyMode.confirm.message"), + t("tutti.editSpeciesFrequencies.changeCopyMode.confirm.help")); + int i = JOptionPane.showConfirmDialog( + ui.getHandler().getTopestUI(), + htmlMessage, + t("tutti.editSpeciesFrequencies.changeCopyMode.confirm.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (i == JOptionPane.CANCEL_OPTION) { + if (log.isDebugEnabled()) { + log.debug("User cancel modification..."); + } + + // on repositionne sur le bon radio-bouton + // le code n'est pas optimal mais est moins dangeureux que de relancer des fires je pense + switch(model.getCopyIndividualObservationMode()) { + case ALL: + ui.getCopyAllButton().setSelected(true); + break; + case NOTHING: + ui.getCopyNothingButton().setSelected(true); + break; + case SIZE: + ui.getCopySizesButton().setSelected(true); + break; + } + + return; + } + } + + } + + model.setCopyIndividualObservationMode(newCopyMode); + } + //------------------------------------------------------------------------// //-- Internal methods --// //------------------------------------------------------------------------// 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 8cbd151..a2e0251 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 @@ -617,27 +617,14 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public void setCopyIndividualObservationMode(CopyIndividualObservationMode copyIndividualObservationMode) { CopyIndividualObservationMode oldValue = getCopyIndividualObservationMode(); + boolean oldCopyAll = isCopyIndividualObservationAll(); + boolean oldCopyNothing = isCopyIndividualObservationNothing(); + boolean oldCopySize = isCopyIndividualObservationSize(); this.copyIndividualObservationMode = copyIndividualObservationMode; - - try { - fireVetoableChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_MODE, oldValue, copyIndividualObservationMode); - firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_ALL, - oldValue == CopyIndividualObservationMode.ALL, - copyIndividualObservationMode == CopyIndividualObservationMode.ALL); - firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_NOTHING, - oldValue == CopyIndividualObservationMode.NOTHING, - copyIndividualObservationMode == CopyIndividualObservationMode.NOTHING); - firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_SIZE, - oldValue == CopyIndividualObservationMode.SIZE, - copyIndividualObservationMode == CopyIndividualObservationMode.SIZE); - firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_MODE, oldValue, copyIndividualObservationMode); - - } catch (PropertyVetoException e) { - if (log.isErrorEnabled()) { - log.error("error in setting copyIndividualObservationMode", e); - } - this.copyIndividualObservationMode = oldValue; - } + firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_ALL, oldCopyAll, isCopyIndividualObservationAll()); + firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_NOTHING, oldCopyNothing, isCopyIndividualObservationNothing()); + firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_SIZE, oldCopySize, isCopyIndividualObservationSize()); + firePropertyChange(PROPERTY_COPY_INDIVIDUAL_OBSERVATION_MODE, oldValue, getCopyIndividualObservationMode()); } public boolean mustCopyIndividualObservationSize() { @@ -645,15 +632,15 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa } public boolean isCopyIndividualObservationAll() { - return copyIndividualObservationMode == CopyIndividualObservationMode.ALL; + return CopyIndividualObservationMode.ALL == copyIndividualObservationMode; } public boolean isCopyIndividualObservationNothing() { - return copyIndividualObservationMode == CopyIndividualObservationMode.NOTHING; + return CopyIndividualObservationMode.NOTHING == copyIndividualObservationMode; } public boolean isCopyIndividualObservationSize() { - return copyIndividualObservationMode == CopyIndividualObservationMode.SIZE; + return CopyIndividualObservationMode.SIZE == copyIndividualObservationMode; } public Set<SpeciesFrequencyRowModel> getEmptyRows() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.