branch develop updated (5da69d1 -> 58d072b)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git from 5da69d1 Fixes #8144 Merge branch 'feature/8144' into develop adds f0045ae création du cache des prélèvements (refs #8043) adds 39163db affichage du message de prélèvement quand on atteint les 1/n observations (refs #8043) adds 2a0fd96 - ajout du résumé des prélèvements - un peu de réagencement de l'écran refs #8043 adds afd7a5c mise a jour du cache quan don supprime des lignes, réinitilise ou annule (refs #8043) adds 275769d - mise a jour du cache quand on modifie le sexe d'une observation - ajout d'infos sur le label de résumé see #8043 adds 739f8e1 cosmétique (fixes #8043) adds 12bc036 addd log new e2fe4ea Quelques améliorations sur le cache new 58d072b Fixes #8043 Merge branch 'feature/8043' into develop The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 58d072b687f3bc25fb3a297195f29b30cdb49f51 Merge: 5da69d1 e2fe4ea Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Mar 18 15:08:23 2016 +0100 Fixes #8043 Merge branch 'feature/8043' into develop commit e2fe4eaed0f4e2923ded0671f0bef7804440de36 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Mar 18 15:08:15 2016 +0100 Quelques améliorations sur le cache Summary of changes: .../CalcifiedPiecesSamplingDefinitionBean.java | 22 + ...dualObservationBatchPersistenceServiceImpl.java | 1 + .../fr/ifremer/tutti/service/TuttiDataContext.java | 57 +- .../service/samplingCache/CruiseSamplingCache.java | 257 +++++++++ .../tutti/service/samplingCache/SamplingEvent.java | 73 +++ .../service/samplingCache/SamplingListener.java | 14 + .../EditCatchesForSelectedCruiseAction.java | 1 + .../content/home/actions/EditCatchesAction.java | 1 + .../IndividualObservationBatchRowModel.java | 9 +- .../species/frequency/SpeciesFrequencyUI.jaxx | 196 ++++--- .../species/frequency/SpeciesFrequencyUI.jcss | 14 +- .../frequency/SpeciesFrequencyUIHandler.java | 591 +++++++++++++-------- .../species/frequency/SpeciesFrequencyUIModel.java | 1 + .../actions/CancelEditSpeciesFrequencyAction.java | 3 + .../frequency/actions/RemoveObservationAction.java | 3 + .../actions/ResetSpeciesFrequencyAction.java | 7 +- .../protocol/actions/SaveProtocolAction.java | 2 + .../util/table/CaracteristicColumnIdentifier.java | 2 + .../resources/i18n/tutti-ui-swing_en_GB.properties | 5 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 5 + 20 files changed, 947 insertions(+), 317 deletions(-) create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CalcifiedPiecesSamplingDefinitionBean.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingCache.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingEvent.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/SamplingListener.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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>.
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 58d072b687f3bc25fb3a297195f29b30cdb49f51 Merge: 5da69d1 e2fe4ea Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Mar 18 15:08:23 2016 +0100 Fixes #8043 Merge branch 'feature/8043' into develop .../CalcifiedPiecesSamplingDefinitionBean.java | 22 + ...dualObservationBatchPersistenceServiceImpl.java | 1 + .../fr/ifremer/tutti/service/TuttiDataContext.java | 57 +- .../service/samplingCache/CruiseSamplingCache.java | 257 +++++++++ .../tutti/service/samplingCache/SamplingEvent.java | 73 +++ .../service/samplingCache/SamplingListener.java | 14 + .../EditCatchesForSelectedCruiseAction.java | 1 + .../content/home/actions/EditCatchesAction.java | 1 + .../IndividualObservationBatchRowModel.java | 9 +- .../species/frequency/SpeciesFrequencyUI.jaxx | 196 ++++--- .../species/frequency/SpeciesFrequencyUI.jcss | 14 +- .../frequency/SpeciesFrequencyUIHandler.java | 591 +++++++++++++-------- .../species/frequency/SpeciesFrequencyUIModel.java | 1 + .../actions/CancelEditSpeciesFrequencyAction.java | 3 + .../frequency/actions/RemoveObservationAction.java | 3 + .../actions/ResetSpeciesFrequencyAction.java | 7 +- .../protocol/actions/SaveProtocolAction.java | 2 + .../util/table/CaracteristicColumnIdentifier.java | 2 + .../resources/i18n/tutti-ui-swing_en_GB.properties | 5 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 5 + 20 files changed, 947 insertions(+), 317 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm