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 c83e68787c8b54892dac4c98ed48fa1a0e53c594 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Thu Jul 28 19:40:43 2016 +0200 fixes #8373: [OBSERVATION INDIVIDUELLE] autoenregistrer ou forcer l'enregistrement (bouton enregistrer et rester..) tous les 10 lignes pour se préminir des pertes d'info auto-enregistrer est trop long, et donc derangerait l'utilisateur. A la place le bouton devient rouge s'il y a une modification --- .../filtered-resources/tutti-help-fr.properties | 7 +- .../species/frequency/SpeciesFrequencyUI.jaxx | 3 + .../species/frequency/SpeciesFrequencyUI.jcss | 9 +++ .../frequency/SpeciesFrequencyUIHandler.java | 14 +++- .../actions/SaveAndStaySpeciesFrequencyAction.java | 74 ++++++++++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 + 7 files changed, 109 insertions(+), 4 deletions(-) diff --git a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties index 582ebc0..4c9ab35 100644 --- a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties +++ b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties @@ -10,19 +10,19 @@ # 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% ### #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Wed Apr 20 15:51:16 CEST 2016 +#Thu Jul 28 17:04:01 CEST 2016 tutti.config.help=config.html tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions @@ -343,6 +343,7 @@ tutti.editSpeciesFrequencies.action.removeObservation.help= tutti.editSpeciesFrequencies.action.reset.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.action.saveAndClose.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.action.saveAndContinue.help=editFishingOperation.html\#captureEspecesMensurationActions +tutti.editSpeciesFrequencies.action.saveAndStay.help=editFishingOperation.html\#captureEspecesMensurationActions tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.help= tutti.editSpeciesFrequencies.field.copyRtpWeights.help= tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.help= 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 a1b3398..7c37a53 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 @@ -33,6 +33,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.CancelEditSpeciesFrequencyAction fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.GenerateSpeciesFrequencyLengthStepsAction fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ResetSpeciesFrequencyAction + fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SaveAndStaySpeciesFrequencyAction fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SaveAndCloseSpeciesFrequencyAction fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SaveAndContinueSpeciesFrequencyAction fr.ifremer.tutti.ui.swing.util.TuttiUI @@ -98,6 +99,7 @@ public boolean leaveIfConfirmed() { return handler.leaveIfConfirmed(); } <AddSpeciesFrequencyLengthStepCaracteristicAction id="addLengthStepCaracteristicAction" constructorParams="this"/> <GenerateSpeciesFrequencyLengthStepsAction id="generateLengthStepsAction" constructorParams="this"/> + <SaveAndStaySpeciesFrequencyAction id="saveAndStayAction" constructorParams="this"/> <SaveAndCloseSpeciesFrequencyAction id="saveAndCloseAction" constructorParams="this"/> <SaveAndContinueSpeciesFrequencyAction id="saveAndContinueAction" constructorParams="this"/> @@ -357,6 +359,7 @@ public boolean leaveIfConfirmed() { return handler.leaveIfConfirmed(); } <JPanel id='actionPanel' layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH' styleClass="buttonPanel"> <JButton id='cancelButton'/> <JButton id='resetButton'/> + <JButton id='saveAndStayButton'/> <JButton id='saveAndContinueButton'/> <JButton id='saveAndCloseButton'/> </JPanel> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss index 948b1d0..6392378 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jcss @@ -577,6 +577,15 @@ ComputableDataEditor { _help: {"tutti.editSpeciesFrequencies.action.saveAndClose.help"}; } +#saveAndStayAction { + enabled: {model.isValid()}; +} + +#saveAndStayButton { + action: {saveAndStayAction}; + _help: {"tutti.editSpeciesFrequencies.action.saveAndStay.help"}; +} + #resetButton { actionIcon: reset; text: "tutti.editSpeciesFrequencies.action.reset"; 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 72c6fd0..74fc75c 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 @@ -587,7 +587,19 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci listenValidatorValid(ui.getValidator(), model); - } + final Color bgSaveBt = ui.getSaveAndStayButton().getBackground(); + final boolean opacity = ui.getSaveAndStayButton().isOpaque(); + model.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_MODIFY, evt -> { + if (Boolean.FALSE.equals(evt.getNewValue())) { + ui.getSaveAndStayButton().setOpaque(opacity); + ui.getSaveAndStayButton().setBackground(bgSaveBt); + } else { + ui.getSaveAndStayButton().setOpaque(true); + ui.getSaveAndStayButton().setBackground(Color.RED); + } + }); + + } @Override protected JComponent getComponentToFocus() { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/SaveAndStaySpeciesFrequencyAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/SaveAndStaySpeciesFrequencyAction.java new file mode 100644 index 0000000..e3e1646 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/SaveAndStaySpeciesFrequencyAction.java @@ -0,0 +1,74 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions; + +/* + * #%L + * Tutti :: UI + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 - 2015 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 fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; +import jaxx.runtime.SwingUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 28/07/2016. + * + * @author Benjamin POUSSIN - poussin@codelutin.com + * @since 4.6 + */ +public class SaveAndStaySpeciesFrequencyAction extends SaveSupportAction { + + /** Logger. */ + private static final Log log = LogFactory.getLog(SaveAndStaySpeciesFrequencyAction.class); + + private static final long serialVersionUID = 1L; + + public SaveAndStaySpeciesFrequencyAction(SpeciesFrequencyUI ui) { + super(ui); + + putValue(NAME, t("tutti.editSpeciesFrequencies.action.saveAndStay")); + putValue(SHORT_DESCRIPTION, t("tutti.editSpeciesFrequencies.action.saveAndStay.tip")); + putValue(MNEMONIC_KEY, (int) SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.saveAndStay.mnemonic"), 'Z')); + putValue(SMALL_ICON, SwingUtil.createActionIcon("save")); + + } + + @Override + public void actionPerformed(ActionEvent e) { + + if (log.isDebugEnabled()) { + log.debug("Save And Continue UI " + ui); + } + + boolean doSave = canSaveFrequencies(); + + if (doSave) { + ui.getHandler().getFrequencyEditor().save(ui.getModel()); + ui.getModel().setModify(false); + } + + } +} \ No newline at end of file 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 ada0de7..be6ad99 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 @@ -1584,6 +1584,9 @@ tutti.editSpeciesFrequencies.action.saveAndClose.tip= tutti.editSpeciesFrequencies.action.saveAndContinue= tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic= tutti.editSpeciesFrequencies.action.saveAndContinue.tip= +tutti.editSpeciesFrequencies.action.saveAndStay= +tutti.editSpeciesFrequencies.action.saveAndStay.mnemonic= +tutti.editSpeciesFrequencies.action.saveAndStay.tip= tutti.editSpeciesFrequencies.addMeasure= tutti.editSpeciesFrequencies.askBeforeSave.help= tutti.editSpeciesFrequencies.askBeforeSave.message= 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 ba3f68b..806ef8f 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 @@ -1475,6 +1475,9 @@ tutti.editSpeciesFrequencies.action.saveAndClose.tip=Enregistrer les mensuration tutti.editSpeciesFrequencies.action.saveAndContinue=Enregistrer et Continuer tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic=C tutti.editSpeciesFrequencies.action.saveAndContinue.tip=Enregistrer les mensurations et saisir les mensurations pour le lot suivant +tutti.editSpeciesFrequencies.action.saveAndStay=Enregistrer et Rester +tutti.editSpeciesFrequencies.action.saveAndStay.mnemonic=S +tutti.editSpeciesFrequencies.action.saveAndStay.tip=Enregistrer les mensurations et rester sur cet écran tutti.editSpeciesFrequencies.addMeasure=Ajout d'un individu de taille <strong>%1$s</strong>%3$s (classe de taille <strong>%2$s</strong>%3$s) tutti.editSpeciesFrequencies.askBeforeSave.help=Que voulez-vous faire?<ul><li><strong>Non</strong> pour rester sur cet écran</li><li><strong>Oui</strong> pour enregisrer les mensurations avec poids</li></ul> tutti.editSpeciesFrequencies.askBeforeSave.message=La saisie comporte des classes de taille avec et sans poids associés.<br/><strong>Seules les classes de taille avec poids seront dans ce cas sauvegardées.</strong> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.