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 1f6c3a9a8b77b2ae102256dee0e1bb76274e1cc7 Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 4 16:22:38 2016 +0200 we show the popup until the user enters a valid sample code (refs #8204) --- .../frequency/actions/EditSampleCodeAction.java | 50 +++++++++++++--------- 1 file changed, 29 insertions(+), 21 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 43478e8..91ff95a 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 @@ -60,40 +60,48 @@ public class EditSampleCodeAction extends SimpleActionSupport<SpeciesFrequencyUI int selectedRowIndex = obsTable.getSelectedRow(); IndividualObservationBatchRowModel selectedRow = obsTableModel.getRows().get(selectedRowIndex); SampleCodeEditionPopupUI sampleCodeEditionPopupUI = new SampleCodeEditionPopupUI(ui); - sampleCodeEditionPopupUI.open(selectedRow.getSamplingCodePrefix(), selectedRow.getSamplingCodeId()); - SampleCodeEditionPopupUIModel model = sampleCodeEditionPopupUI.getModel(); - if (model.isValid()) { + boolean samplingCodeAvailable = false; + boolean modelValid; + do { + Integer samplingCodeId = selectedRow.getSamplingCodeId(); + sampleCodeEditionPopupUI.open(selectedRow.getSamplingCodePrefix(), samplingCodeId); - Integer sampleCode = model.getSampleCode(); + SampleCodeEditionPopupUIModel model = sampleCodeEditionPopupUI.getModel(); + modelValid = model.isValid(); - String samplingCode = model.getSampleCodePrefix().toSamplingCode(sampleCode); - if (log.isDebugEnabled()) { - log.debug("Test if sampling code " + samplingCode + " is available."); - } - - IndividualObservationUICache individualObservationUICache = ui.getHandler().getIndividualObservationUICache(); + if (modelValid) { - boolean samplingCodeAvailable = isSamplingCodeAvailable(individualObservationUICache, sampleCode, selectedRow); - if (!samplingCodeAvailable) { + Integer sampleCode = model.getSampleCode(); + String samplingCode = model.getSampleCodePrefix().toSamplingCode(sampleCode); if (log.isDebugEnabled()) { - log.debug("Sampling code " + samplingCode + " is not available."); + log.debug("Test if sampling code " + samplingCode + " is available."); } - TuttiUIContext.getApplicationContext().getErrorHelper().showErrorDialog(t("tutti.editSpeciesFrequencies.error.notAvailableSamplingCode", samplingCode)); - } else { + IndividualObservationUICache individualObservationUICache = ui.getHandler().getIndividualObservationUICache(); - if (log.isDebugEnabled()) { - log.debug("Sampling code " + samplingCode + " is available, use it on selected row."); - } + samplingCodeAvailable = samplingCodeId.equals(sampleCode) || isSamplingCodeAvailable(individualObservationUICache, sampleCode, selectedRow); + if (!samplingCodeAvailable) { - selectedRow.setSamplingCode(samplingCode); - obsTableModel.fireTableRowsUpdated(selectedRowIndex, selectedRowIndex); + 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); + + } } - } + } while (!samplingCodeAvailable && modelValid); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.