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 e2fe4eaed0f4e2923ded0671f0bef7804440de36 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Mar 18 15:08:15 2016 +0100 Quelques améliorations sur le cache --- .../tutti/service/samplingCache/SamplingEvent.java | 14 +-- .../service/samplingCache/SamplingListener.java | 4 +- .../frequency/SpeciesFrequencyUIHandler.java | 114 +++++++++++---------- 3 files changed, 71 insertions(+), 61 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java index 07dce7d..8a07a44 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java @@ -25,13 +25,7 @@ public class SamplingEvent extends EventObject { protected final int nbForOperation; - /** - * Constructs a prototypical Event. - * - * @param source The object on which the Event initially occurred. - * @throws IllegalArgumentException if source is null. - */ - public SamplingEvent(Object source, float lengthStep, CaracteristicQualitativeValue gender, Boolean maturity, + public SamplingEvent(CruiseSamplingCache source, float lengthStep, CaracteristicQualitativeValue gender, Boolean maturity, CalcifiedPiecesSamplingDefinition cpsDef, int nbForCruise, int nbForZone, int nbForOperation) { super(source); this.lengthStep = lengthStep; @@ -70,4 +64,10 @@ public class SamplingEvent extends EventObject { public int getNbForOperation() { return nbForOperation; } + + @Override + public CruiseSamplingCache getSource() { + return (CruiseSamplingCache) super.getSource(); + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java index 1a76eb9..3570217 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java @@ -1,10 +1,12 @@ package fr.ifremer.tutti.service.samplingCache; +import java.util.EventListener; + /** * @author Kevin Morin (Code Lutin) * @since 4.5 */ -public interface SamplingListener { +public interface SamplingListener extends EventListener { void samplingNeeded(SamplingEvent event); 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 c96ab6f..e6f3a80 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 @@ -133,7 +133,7 @@ import static org.nuiton.i18n.I18n.t; * @since 0.2 */ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<SpeciesFrequencyRowModel, SpeciesFrequencyUIModel, SpeciesFrequencyUI> - implements CaracteristicMapColumnUIHandler, SamplingListener { + implements CaracteristicMapColumnUIHandler { /** Logger. */ private static final Log log = LogFactory.getLog(SpeciesFrequencyUIHandler.class); @@ -171,6 +171,8 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci */ protected final FeedReaderListener feedReaderListener; + protected final SamplingListener samplingListener; + protected ApplySpeciesFrequencyRafaleAction applySpeciesFrequencyRafaleAction; protected PropertyChangeListener obsChangedListener; @@ -204,6 +206,47 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } }; + this.samplingListener = new SamplingListener() { + + @Override + public void samplingNeeded(SamplingEvent event) { + + if (log.isInfoEnabled()) { + log.info("samplingNeeded"); + } + + CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); + + boolean showSamplingWarning = !isValueUpperMax(event.getNbForOperation(), cpsDef.getOperationLimitation()) + && !isValueUpperMax(event.getNbForZone(), cpsDef.getZoneLimitation()) + && !isValueUpperMax(event.getNbForCruise(), cpsDef.getMaxByLenghtStep()); + if (log.isInfoEnabled()) { + log.info("showSamplingWarning " + showSamplingWarning); + } + ui.getSamplingWarningLabel().setVisible(showSamplingWarning); + + String nbForOperation = getLabelForSamplingNumber(event.getNbForOperation(), cpsDef.getOperationLimitation()); + String nbForZone = getLabelForSamplingNumber(event.getNbForZone(), cpsDef.getZoneLimitation()); + String nbForCruise = getLabelForSamplingNumber(event.getNbForCruise(), cpsDef.getMaxByLenghtStep()); + + //TODO add mauturity + String key = event.getLengthStep() + " " + getModel().getLengthStepCaracteristicUnit(); + if (event.getGender() != null) { + key += " " + event.getGender().getDescription(); + } + if (event.getMaturity() != null) + if (event.getMaturity() != null) { + if (event.getMaturity()) { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); + } else { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); + } + } + ui.getSamplingResumeLabel().setText(t("tutti.editSpeciesFrequencies.samplingNeeded.resume", key, nbForOperation, nbForZone, nbForCruise)); + + } + }; + this.obsChangedListener = new PropertyChangeListener() { @Override @@ -218,6 +261,10 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // we only update the frequencies if the row is valid if (row.isValid()) { + + if (log.isDebugEnabled()) { + log.debug("Row is valid"); + } if (IndividualObservationBatchRowModel.PROPERTY_SIZE.equals(propertyName)) { Float oldValue = (Float) evt.getOldValue(); @@ -265,7 +312,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // TODO idem avec la maturité if (row.withSize() - && (IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS.equals(propertyName) + && (IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS.equals(propertyName) || IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS.equals(propertyName))) { CaracteristicMap oldValue = (CaracteristicMap) evt.getOldValue(); @@ -364,43 +411,6 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } @Override - public void samplingNeeded(SamplingEvent event) { - - if (log.isInfoEnabled()) { - log.info("samplingNeeded"); - } - - CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); - - boolean showSamplingWarning = !isValueUpperMax(event.getNbForOperation(), cpsDef.getOperationLimitation()) - && !isValueUpperMax(event.getNbForZone(), cpsDef.getZoneLimitation()) - && !isValueUpperMax(event.getNbForCruise(), cpsDef.getMaxByLenghtStep()); - if (log.isInfoEnabled()) { - log.info("showSamplingWarning " + showSamplingWarning); - } - ui.getSamplingWarningLabel().setVisible(showSamplingWarning); - - String nbForOperation = getLabelForSamplingNumber(event.getNbForOperation(), cpsDef.getOperationLimitation()); - String nbForZone = getLabelForSamplingNumber(event.getNbForZone(), cpsDef.getZoneLimitation()); - String nbForCruise = getLabelForSamplingNumber(event.getNbForCruise(), cpsDef.getMaxByLenghtStep()); - - //TODO add mauturity - String key = event.getLengthStep() + " " + getModel().getLengthStepCaracteristicUnit(); - if (event.getGender() != null) { - key += " " + event.getGender().getDescription(); - } - if (event.getMaturity() != null) - if (event.getMaturity() != null) { - if (event.getMaturity()) { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); - } else { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); - } - } - ui.getSamplingResumeLabel().setText(t("tutti.editSpeciesFrequencies.samplingNeeded.resume", key, nbForOperation, nbForZone, nbForCruise)); - } - - @Override protected void onModelRowsChanged(List<SpeciesFrequencyRowModel> rows) { SpeciesFrequencyUIModel model = getModel(); @@ -668,13 +678,13 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // si on etait en mode taille et que l'utilisateur avait saisi des tailles if (oldCopyMode == CopyIndividualObservationMode.SIZE) { rowsWithUserData = model.getRows().stream() - .filter(SpeciesFrequencyRowModel::withWeight) - .count(); + .filter(SpeciesFrequencyRowModel::withWeight) + .count(); } else { rowsWithUserData = model.getRows().stream() - .filter(row -> row.getLengthStep() != null || row.withNumber() || row.withWeight()) - .count(); + .filter(row -> row.getLengthStep() != null || row.withNumber() || row.withWeight()) + .count(); } if (rowsWithUserData > 0) { @@ -811,7 +821,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } if (getDataContext().isCruiseSamplingCacheLoaded()) { - getDataContext().getCruiseSamplingCache().removeSamplingListener(this); + getDataContext().getCruiseSamplingCache().removeSamplingListener(samplingListener); } } @@ -1102,7 +1112,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } if (getDataContext().isCruiseSamplingCacheLoaded()) { - getDataContext().getCruiseSamplingCache().addSamplingListener(this); + getDataContext().getCruiseSamplingCache().addSamplingListener(samplingListener); } model.setModify(false); @@ -1150,11 +1160,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci public void resetSamplings() { if (!initBatchEdition && getDataContext().isCruiseSamplingCacheLoaded()) { - frequencyEditor.getEditRow().getIndividualObservation().forEach(row -> { - if (row.withSize()) { - incrementSampling(getRowGender(row), null, row.getSize()); - } - }); + frequencyEditor.getEditRow().getIndividualObservation().stream() + .filter(IndividualObservationBatchRowModel::withSize) + .forEach(row -> incrementSampling(getRowGender(row), null, row.getSize())); } } @@ -1303,7 +1311,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci Float rate = getConfig().getDifferenceRateBetweenWeightAndRtpWeight(); result = row.withWeight() && row.withRtpComputedWeight() - && Math.abs(row.getWeight() - row.getRtpComputedWeight()) >= row.getWeight() * rate / 100; + && Math.abs(row.getWeight() - row.getRtpComputedWeight()) >= row.getWeight() * rate / 100; } return result; @@ -1562,7 +1570,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci case TableModelEvent.INSERT: resetSamplingLabels(); - for (int i = firstRow ; i <= lastRow ; i++) { + for (int i = firstRow; i <= lastRow; i++) { IndividualObservationBatchRowModel newRow = tableModel.getRows().get(i); newRow.addPropertyChangeListener(obsChangedListener); @@ -1584,7 +1592,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci }); } - protected void resetSamplingLabels() { + protected void resetSamplingLabels() { if (log.isInfoEnabled()) { log.info("reset smapling panel"); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.