This is an automated email from the git hooks/post-receive script. New commit to branch feature/8204 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 14f33e21f5733a67f6407dbc75f4ec12e6179921 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 4 15:02:13 2016 +0200 Add more logs + display error if code is not available (Fixes #8204) --- .../frequency/actions/EditSampleCodeAction.java | 45 +++++++++++++++++----- .../resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java index ad7923f..43478e8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/EditSampleCodeAction.java @@ -37,6 +37,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; +import static org.nuiton.i18n.I18n.t; + /** * @author Kevin Morin (Code Lutin) * @since 4.5 @@ -66,8 +68,8 @@ public class EditSampleCodeAction extends SimpleActionSupport<SpeciesFrequencyUI Integer sampleCode = model.getSampleCode(); String samplingCode = model.getSampleCodePrefix().toSamplingCode(sampleCode); - if (log.isInfoEnabled()) { - log.info("Try to set sampling code: " + samplingCode); + if (log.isDebugEnabled()) { + log.debug("Test if sampling code " + samplingCode + " is available."); } IndividualObservationUICache individualObservationUICache = ui.getHandler().getIndividualObservationUICache(); @@ -75,12 +77,21 @@ public class EditSampleCodeAction extends SimpleActionSupport<SpeciesFrequencyUI boolean samplingCodeAvailable = isSamplingCodeAvailable(individualObservationUICache, sampleCode, selectedRow); if (!samplingCodeAvailable) { - //TODO kmorin mettre une jolie boite de dialogue - throw new IllegalStateException("Le code de prélèvement " + samplingCode + " est déjà utilisé en base!"); + if (log.isDebugEnabled()) { + log.debug("Sampling code " + samplingCode + " is not available."); + } + TuttiUIContext.getApplicationContext().getErrorHelper().showErrorDialog(t("tutti.editSpeciesFrequencies.error.notAvailableSamplingCode", samplingCode)); + + } else { + + if (log.isDebugEnabled()) { + log.debug("Sampling code " + samplingCode + " is available, use it on selected row."); + } + + selectedRow.setSamplingCode(samplingCode); + obsTableModel.fireTableRowsUpdated(selectedRowIndex, selectedRowIndex); } - selectedRow.setSamplingCode(samplingCode); - obsTableModel.fireTableRowsUpdated(selectedRowIndex, selectedRowIndex); } @@ -93,12 +104,18 @@ public class EditSampleCodeAction extends SimpleActionSupport<SpeciesFrequencyUI if (individualObservationUICache.isSamplingCodeNotAvailable(sampleCode)) { // le code n'est pas disponible (on le sait depuis le cache de l'écran) + if (log.isDebugEnabled()) { + log.debug("Sampling code " + sampleCode + " is known as not available from cache. Can't use it."); + } return false; } if (individualObservationUICache.isSamplingCodeAvailable(sampleCode)) { // le code est pas disponible (on le sait depuis le cache de l'écran) + if (log.isDebugEnabled()) { + log.debug("Sampling code " + sampleCode + " is known as available from cache. Can use it."); + } return true; } @@ -107,9 +124,19 @@ public class EditSampleCodeAction extends SimpleActionSupport<SpeciesFrequencyUI PersistenceService persistenceService = applicationContext.getPersistenceService(); String samplingCodeSuffix = selectedRow.getSamplingCodePrefix().toSpeciesOnlySamplingCode(sampleCode); - return persistenceService.isSamplingCodeAvailable(applicationContext.getCruiseId(), - selectedRow.getSpecies().getReferenceTaxonId(), - samplingCodeSuffix); + boolean samplingCodeAvailable = persistenceService.isSamplingCodeAvailable(applicationContext.getCruiseId(), + selectedRow.getSpecies().getReferenceTaxonId(), + samplingCodeSuffix); + + if (log.isDebugEnabled()) { + if (samplingCodeAvailable) { + log.debug("Sampling code " + sampleCode + " is known as available from database. Can use it."); + } else { + log.debug("Sampling code " + sampleCode + " is known as not available from database. Can't use it."); + } + } + + return samplingCodeAvailable; } } 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 e9c7a23..3a279cf 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 @@ -1574,6 +1574,7 @@ tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message= tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.title= tutti.editSpeciesFrequencies.error.itchyometer.bad.record= tutti.editSpeciesFrequencies.error.length.doublon= +tutti.editSpeciesFrequencies.error.notAvailableSamplingCode= tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale= tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip= tutti.editSpeciesFrequencies.field.copyRtpWeights= 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 867d16b..343d943 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 @@ -1474,6 +1474,7 @@ tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message=Vous êtes sur 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.error.notAvailableSamplingCode=Le code de prélèvement <strong>%s</strong> est déjà utilisé sur cette campagne; veuillez en choisir un autre. tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale=Ajouter aux observations individuelles tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip=Ajouter une ligne d'observation individuelle avec la taille saisie tutti.editSpeciesFrequencies.field.copyRtpWeights=Recopie des poids via RTP -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.