This is an automated email from the git hooks/post-receive script. New commit to branch feature/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 597b1e343b5e52d6ac1b078124d525c81fc15eda Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 14:53:30 2016 +0200 - flag pour ne pas effacer le message de prélèvement en cas d'ajout en rafale - on n'efface pas le résumé des prelevements quand on modifie les lignes (refs #8203) --- .../frequency/IndividualObservationUICache.java | 77 ++++++++++++---------- .../frequency/SpeciesFrequencyUIHandler.java | 11 ++-- .../species/frequency/SpeciesFrequencyUIModel.java | 13 ++++ .../actions/ApplySpeciesFrequencyRafaleAction.java | 8 ++- 4 files changed, 67 insertions(+), 42 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java index 218cb9e..06b07c0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java @@ -163,7 +163,7 @@ public class IndividualObservationUICache implements Closeable { @Override public void summaryUpdated(SamplingEvent event) { - displaySummary(event); + displaySummary(Optional.of(event)); } }; @@ -457,56 +457,63 @@ public class IndividualObservationUICache implements Closeable { public void updateSelectedRow(IndividualObservationBatchRowModel selectedRow) { + Optional<SamplingEvent> event; if (samplingCache.isPresent() && selectedRow.withSize()) { Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), selectedRow.getMaturityState()); int lengthstep = uiModel.getLengthStepInMm(selectedRow.getSize()); - Optional<SamplingEvent> event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(sexCaracteristic), lengthstep); + event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(sexCaracteristic), lengthstep); - if (event.isPresent()) { - displaySummary(event.get()); - } + } else { + event = Optional.empty(); } + displaySummary(event); } - protected void displaySummary(SamplingEvent event) { + protected void displaySummary(Optional<SamplingEvent> optEvent) { - CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); - if (log.isInfoEnabled()) { - log.info("samplingNeeded for " + cpsDef); - } + String summary = null; - int nbForOperation = event.getNbSamplingForOperation(); - int nbForZone = event.getNbSamplingForZone(); - int nbForCruise = event.getNbSamplingForCruise(); + if (optEvent.isPresent()) { + SamplingEvent event = optEvent.get(); - String nbForOperationLabel = getLabelForSamplingNumber(nbForOperation, cpsDef.getOperationLimitation()); - String nbForZoneLabel = getLabelForSamplingNumber(nbForZone, cpsDef.getZoneLimitation()); - String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); + CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); + if (log.isInfoEnabled()) { + log.info("samplingNeeded for " + cpsDef); + } - Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); - String key = speciesDecorator.toString(species) - + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) - + " " + uiModel.getLengthStepCaracteristicUnit(); - if (event.getGender() != null) { - key += " " + event.getGender().getDescription(); - } - if (event.getMaturity() != null) { - if (event.getMaturity()) { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); + int nbForOperation = event.getNbSamplingForOperation(); + int nbForZone = event.getNbSamplingForZone(); + int nbForCruise = event.getNbSamplingForCruise(); + + String nbForOperationLabel = getLabelForSamplingNumber(nbForOperation, cpsDef.getOperationLimitation()); + String nbForZoneLabel = getLabelForSamplingNumber(nbForZone, cpsDef.getZoneLimitation()); + String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); + + Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); + String key = speciesDecorator.toString(species) + + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) + + " " + uiModel.getLengthStepCaracteristicUnit(); + if (event.getGender() != null) { + key += " " + event.getGender().getDescription(); + } + if (event.getMaturity() != null) { + if (event.getMaturity()) { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); + } else { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); + } + } + if (event.getZone().isPresent()) { + Decorator<Zone> zoneDecorator = ui.getHandler().getDecorator(Zone.class, null); + String zone = zoneDecorator.toString(event.getZone().get()); + summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary", key, nbForOperationLabel, zone, nbForZoneLabel, nbForCruiseLabel); } else { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); + summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone", key, nbForOperationLabel, nbForZoneLabel, nbForCruiseLabel); } } - String summary; - if (event.getZone().isPresent()) { - Decorator<Zone> zoneDecorator = ui.getHandler().getDecorator(Zone.class, null); - String zone = zoneDecorator.toString(event.getZone().get()); - summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary", key, nbForOperationLabel, zone, nbForZoneLabel, nbForCruiseLabel); - } else { - summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone", key, nbForOperationLabel, nbForZoneLabel, nbForCruiseLabel); - } + ui.getSamplingResumeLabel().setText(summary); } 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 d34f561..f382c47 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 @@ -217,8 +217,6 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci @Override public void propertyChange(PropertyChangeEvent evt) { - resetSamplingLabels(); - IndividualObservationBatchRowModel row = (IndividualObservationBatchRowModel) evt.getSource(); String propertyName = evt.getPropertyName(); @@ -819,7 +817,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci frequenciesHistogramPopup.dispose(); averageWeightsHistogramPopup.dispose(); - resetSamplingLabels(); + resetSamplingLabel(); frequencyEditor = null; @@ -1419,7 +1417,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci obsTable.getSelectionModel().addListSelectionListener(e -> { - resetSamplingLabels(); + if (!getModel().isInRafaleRowCreation()) { + resetSamplingLabel(); + } if (obsTable.getSelectedRowCount() == 1) { IndividualObservationBatchRowModel selectedRow = getObsTableModel().getRows().get(obsTable.getSelectedRow()); individualObservationUICache.updateSelectedRow(selectedRow); @@ -1427,12 +1427,11 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci }); } - protected void resetSamplingLabels() { + protected void resetSamplingLabel() { if (log.isDebugEnabled()) { log.debug("reset smapling panel"); } ui.getSamplingWarningLabel().setVisible(false); - ui.getSamplingResumeLabel().setText(null); } public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { 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 d6d7bf5..21879e8 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 @@ -308,6 +308,11 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa protected boolean initBatchEdition; /** + * A row is being created in rafale. Do not remove the sampling warning in this state. + */ + protected boolean inRafaleRowCreation; + + /** * Caracteristiques non éditables, car caractéristiques de catégorisation du lot (sexe, maturité, etc) * * @since 4.5 @@ -1015,6 +1020,14 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa this.rowComputationInProgress = rowComputationInProgress; } + public boolean isInRafaleRowCreation() { + return inRafaleRowCreation; + } + + public void setInRafaleRowCreation(boolean inRafaleRowCreation) { + this.inRafaleRowCreation = inRafaleRowCreation; + } + public Collection<Caracteristic> getNotEditableCaracteristic() { return notEditableCaracteristic; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java index d1be369..7d86e40 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java @@ -76,6 +76,8 @@ public class ApplySpeciesFrequencyRafaleAction { SpeciesFrequencyUIHandler handler = ui.getHandler(); float aroundLengthStep = model.getLengthStep(step); + model.setInRafaleRowCreation(true); + if (model.isCopyIndividualObservationNothing()) { SpeciesFrequencyTableModel tableModel = handler.getTableModel(); @@ -141,7 +143,10 @@ public class ApplySpeciesFrequencyRafaleAction { newLogRow.setObsRow(obsRow); int rowIndex = obsTableModel.getRowIndex(obsRow); - SwingUtilities.invokeLater(() -> selectRow(ui.getObsTable(), rowIndex)); + SwingUtilities.invokeLater(() -> { + selectRow(ui.getObsTable(), rowIndex); + model.setInRafaleRowCreation(false); + }); } @@ -157,6 +162,7 @@ public class ApplySpeciesFrequencyRafaleAction { } protected void selectRow(JXTable table, int rowIndex) { + table.setRowSelectionInterval(rowIndex, rowIndex); table.scrollRowToVisible(rowIndex); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.