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 1f4faadf6384c4bf721b8ca2ed566c1fd1eae01c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Apr 24 22:31:07 2016 +0200 Bien recharger l'opération de pêche lorsqu'elle change dans le contexte de données --- .../frequency/IndividualObservationUICache.java | 30 ++++++++++++++++++---- .../frequency/SpeciesFrequencyUIHandler.java | 14 +++++++++- 2 files changed, 38 insertions(+), 6 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 dac9edd..4f4964a 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 @@ -24,6 +24,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; * #L% */ +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.protocol.Zone; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.cruise.CruiseCache; @@ -33,6 +34,8 @@ import fr.ifremer.tutti.service.sampling.IndividualObservationSamplingCacheReque import fr.ifremer.tutti.service.sampling.IndividualObservationSamplingStatus; import fr.ifremer.tutti.service.sampling.SizeNotDefinedOnIndividualObservationException; import fr.ifremer.tutti.service.sampling.ZoneNotDefinedOnFishingOperationException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.io.Closeable; import java.util.Collection; @@ -51,6 +54,9 @@ import java.util.Optional; */ public class IndividualObservationUICache implements Closeable { + /** Logger. */ + private static final Log log = LogFactory.getLog(IndividualObservationUICache.class); + private final CruiseSamplingCache cruiseSamplingCache; private final boolean useCruiseSamplingCache; private final SpeciesFrequencyUIModel uiModel; @@ -76,6 +82,24 @@ public class IndividualObservationUICache implements Closeable { return fishingOperationZone != null; } + public void initFishingOperation(FishingOperation fishingOperation) { + + Objects.requireNonNull(fishingOperation); + if (useCruiseSamplingCache) { + + // calcule de la zone associée à l'opération de pêche + Optional<Zone> optionalZone = cruiseSamplingCache.tryFindZone(fishingOperation); + + if (log.isInfoEnabled()) { + log.info("Init fishing operation zone: " + optionalZone); + } + + fishingOperationZone = optionalZone.orElse(null); + + } + + } + public void init(Species species, List<IndividualObservationBatchRowModel> individualObservations, boolean addToCache) { Objects.requireNonNull(species); @@ -83,10 +107,6 @@ public class IndividualObservationUICache implements Closeable { if (useCruiseSamplingCache) { - // calcule de la zone associée à l'opération de pêche - Optional<Zone> optionalZone = cruiseSamplingCache.tryFindZone(uiModel.getFishingOperation()); - fishingOperationZone = optionalZone.orElse(null); - // est-ce que l'espèce du lot existe dans l'algortihme des pièces calcifiées speciesDefinedInCalcifiedPiecesSampling = cruiseSamplingCache.isSpeciesDefined(species); @@ -124,7 +144,7 @@ public class IndividualObservationUICache implements Closeable { IndividualObservationSamplingCacheRequest samplingCacheRequest = uiModel.toSamplingCacheRequest(row); addIndividualObservation(samplingCacheRequest); - + }); } 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 b61e68c..f69115e 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 @@ -30,6 +30,7 @@ import fr.ifremer.tutti.ichtyometer.feed.event.IchtyometerFeedReaderListener; import fr.ifremer.tutti.ichtyometer.feed.record.IchtyometerFeedReaderMeasureRecord; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.CopyIndividualObservationMode; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; @@ -386,6 +387,16 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // listen when caliper is connected or not and adjust the listener getContext().addPropertyChangeListener(TuttiUIContext.PROPERTY_CALIPER_CONNECTED, listenCaliperIsConnected); + // pour recharger l'opération dans le modèle quand celle ci a changée (après une sauvegarde de l'opération par exemple) + getDataContext().addPropertyChangeListener(TuttiDataContext.PROPERTY_FISHING_OPERATION_ID, event -> { + TuttiDataContext source = (TuttiDataContext) event.getSource(); + FishingOperation fishingOperation = source.getFishingOperation(); + if (log.isInfoEnabled()) { + log.info("Reloading fishing operation in model: " + fishingOperation); + } + model.setFishingOperation(fishingOperation); + }); + } @Override @@ -676,10 +687,11 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci model.setRtp(rtp); - // init maturity caracteristic individualObservationBatchTableHandler.initMaturityCaracteristic(speciesProtocol); individualObservationBatchTableHandler.initDefaultCaracteristics(speciesBatch); + model.getIndividualObservationUICache().initFishingOperation(model.getFishingOperation()); + loadFrequenciesAndObservations(frequency, individualObservations, false); samplingNotificationZoneHandler.editBatch(speciesBatch); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.