branch feature/8231 created (now 3fefd11)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8231 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git at 3fefd11 stockage de la caractéristique de maturité et de sexe sur le modèle (fixes #8231) This branch includes the following new commits: new 3eafba9 ajout d'une precondition pour eviter de decrementer une valeur à 0 (refs #8231) new c1df9c4 on ne stocke pas la caracteristique de maturité sur la ligne, on la passe à la méthode get (comme pour le sex) (refs #8231) new 3fefd11 stockage de la caractéristique de maturité et de sexe sur le modèle (fixes #8231) The 3 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 3fefd11c4904c44d8b78185151ae784f302a6be6 Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 11 11:47:20 2016 +0200 stockage de la caractéristique de maturité et de sexe sur le modèle (fixes #8231) commit c1df9c4a3b1edabc4790490722bb01ab2843aa5e Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 11 11:46:37 2016 +0200 on ne stocke pas la caracteristique de maturité sur la ligne, on la passe à la méthode get (comme pour le sex) (refs #8231) commit 3eafba91d7007c24717c2fb4af04b7b61f64cc85 Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 11 11:45:31 2016 +0200 ajout d'une precondition pour eviter de decrementer une valeur à 0 (refs #8231) -- 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 feature/8231 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 3eafba91d7007c24717c2fb4af04b7b61f64cc85 Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 11 11:45:31 2016 +0200 ajout d'une precondition pour eviter de decrementer une valeur à 0 (refs #8231) --- .../fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java index 5351f78..f59753d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java @@ -24,6 +24,7 @@ package fr.ifremer.tutti.service.sampling; * #L% */ +import com.google.common.base.Preconditions; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -250,6 +251,7 @@ class CruiseSamplingInternalCache implements Closeable { } public int decrementObservationNb() { + Preconditions.checkState(observationNb > 0, "You cannot decrement the observation number if there is no observation"); observationNb--; return getObservationNb(); } @@ -264,6 +266,7 @@ class CruiseSamplingInternalCache implements Closeable { } public int decrementSamplingNb() { + Preconditions.checkState(samplingNb > 0, "You cannot decrement a sampling number if there is no sampling"); samplingNb--; return getSamplingNb(); } -- 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 feature/8231 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit c1df9c4a3b1edabc4790490722bb01ab2843aa5e Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 11 11:46:37 2016 +0200 on ne stocke pas la caracteristique de maturité sur la ligne, on la passe à la méthode get (comme pour le sex) (refs #8231) --- .../IndividualObservationBatchRowModel.java | 10 +++------- .../IndividualObservationBatchTableModel.java | 14 +++++--------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java index b57a3ed..fc39ffc 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java @@ -483,15 +483,11 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel return (CaracteristicQualitativeValue) getCaracteristicValue(sexCaracteristic); } - public Optional<Caracteristic> getMaturityCaracteristic() { - return maturityCaracteristic; + public CaracteristicQualitativeValue getMaturityState(Caracteristic maturityCaracteristic) { + return (CaracteristicQualitativeValue) getCaracteristicValue(maturityCaracteristic); } - public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { - this.maturityCaracteristic = maturityCaracteristic; - } - - public Optional<CaracteristicQualitativeValue> getMaturityState() { + public Optional<CaracteristicQualitativeValue> getMaturityState(Optional<Caracteristic> maturityCaracteristic) { if (!maturityCaracteristic.isPresent()) { return Optional.empty(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java index 81d0a6a..8209aa3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java @@ -99,10 +99,10 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab protected Caracteristic lengthstepCaracteristic; - protected Optional<Caracteristic> maturityCaracteristic = Optional.empty(); - protected Caracteristic sexCaracteristic; + protected Optional<Caracteristic> maturityCaracteristic = Optional.empty(); + public IndividualObservationBatchTableModel(WeightUnit weightUnit, Collection<Caracteristic> defaultCaracteristicsSet, Caracteristic sexCaracteristic, @@ -147,9 +147,6 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab if (maturityCaracteristic.isPresent()) { defaultCaracteristicsMap.put(maturityCaracteristic.get(), null); } - if (rows != null) { - rows.forEach(row -> row.setMaturityCaracteristic(maturityCaracteristic)); - } } public void addMaturityIdentifier(ColumnIdentifier<IndividualObservationBatchRowModel> maturityIdentifer) { @@ -177,7 +174,6 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab result.setSpecies(species); result.setSamplingCodePrefix(samplingCodePrefix); result.setLengthStepCaracteristic(lengthstepCaracteristic); - result.setMaturityCaracteristic(maturityCaracteristic); if (getRowCount() > 0) { IndividualObservationBatchRowModel lastRow = getRows().get(getRowCount() - 1); @@ -185,9 +181,9 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab CaracteristicQualitativeValue gender = lastRow.getGender(sexCaracteristic); result.getDefaultCaracteristics().put(sexCaracteristic, gender); - Optional<CaracteristicQualitativeValue> maturityState = lastRow.getMaturityState(); - if (maturityCaracteristic.isPresent() && maturityState.isPresent()) { - result.getDefaultCaracteristics().put(maturityCaracteristic.get(), maturityState.get()); + if (maturityCaracteristic.isPresent()) { + CaracteristicQualitativeValue maturityState = lastRow.getMaturityState(maturityCaracteristic.get()); + result.getDefaultCaracteristics().put(maturityCaracteristic.get(), maturityState); } } -- 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 feature/8231 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 3fefd11c4904c44d8b78185151ae784f302a6be6 Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 11 11:47:20 2016 +0200 stockage de la caractéristique de maturité et de sexe sur le modèle (fixes #8231) --- .../frequency/IndividualObservationUICache.java | 10 ++++----- .../frequency/SpeciesFrequencyUIHandler.java | 24 ++++++++++---------- .../species/frequency/SpeciesFrequencyUIModel.java | 26 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 18 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 2c3942a..a9990f1 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 @@ -69,7 +69,6 @@ public class IndividualObservationUICache implements Closeable { private final SamplingListener samplingListener; private final Optional<CruiseSamplingCache> samplingCache; - private final Caracteristic sexCaracteristic; private final SpeciesFrequencyUIModel uiModel; private SpeciesBatchRowModel speciesEditRow; @@ -100,7 +99,6 @@ public class IndividualObservationUICache implements Closeable { this.samplingCache = samplingCache; this.uiModel = uiModel; - this.sexCaracteristic = sexCaracteristic; // Ecoute sur le modèle de l'ui pour savoir quand on peut activer le cache (i.e uand le modèle n'est pas en construction) this.uiModel.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_INIT_BATCH_EDITION, new PropertyChangeListener() { @@ -212,7 +210,7 @@ public class IndividualObservationUICache implements Closeable { */ public void increments(IndividualObservationBatchRowModel row) { - incrementsObservationNb(row.getGender(sexCaracteristic), row.getMaturityState(), row.getSize(), Optional.ofNullable(row.getSamplingCode())); + incrementsObservationNb(row.getGender(uiModel.getSexCaracteristic()), row.getMaturityState(uiModel.getMaturityCaracteristic()), row.getSize(), Optional.ofNullable(row.getSamplingCode())); } @@ -300,7 +298,7 @@ public class IndividualObservationUICache implements Closeable { */ public void decrements(IndividualObservationBatchRowModel row) { - decrementsObservationNb(row.getGender(sexCaracteristic), row.getMaturityState(), row.getSize(), Optional.ofNullable(row.getSamplingCode())); + decrementsObservationNb(row.getGender(uiModel.getSexCaracteristic()), row.getMaturityState(uiModel.getMaturityCaracteristic()), row.getSize(), Optional.ofNullable(row.getSamplingCode())); } @@ -464,10 +462,10 @@ public class IndividualObservationUICache implements Closeable { IndividualObservationBatchRowModel selectedRow = optSelectedRow.get(); - Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), selectedRow.getMaturityState()); + Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), selectedRow.getMaturityState(uiModel.getMaturityCaracteristic())); int lengthstep = uiModel.getLengthStepInMm(selectedRow.getSize()); - event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(sexCaracteristic), lengthstep); + event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(uiModel.getSexCaracteristic()), lengthstep); } else { event = Optional.empty(); 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 0ad49d2..e7d9b7a 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 @@ -161,8 +161,6 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci protected final JFrame averageWeightsHistogramPopup = new JFrame(); - protected Caracteristic sexCaracteristic; - /** * Weight unit. * @@ -220,8 +218,8 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci IndividualObservationBatchRowModel row = (IndividualObservationBatchRowModel) evt.getSource(); String propertyName = evt.getPropertyName(); - CaracteristicQualitativeValue gender = row.getGender(sexCaracteristic); - Optional<CaracteristicQualitativeValue> maturity = row.getMaturityState(); + CaracteristicQualitativeValue gender = row.getGender(getModel().getSexCaracteristic()); + Optional<CaracteristicQualitativeValue> maturity = row.getMaturityState(getModel().getMaturityCaracteristic()); switch (propertyName) { case IndividualObservationBatchRowModel.PROPERTY_SIZE: @@ -284,9 +282,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci log.info("caracteristics changed"); } - if (row.getMaturityCaracteristic().isPresent()) { - Optional<CaracteristicQualitativeValue> oldMaturity = Optional.ofNullable((CaracteristicQualitativeValue) oldValue.get(row.getMaturityCaracteristic().get())); - Optional<CaracteristicQualitativeValue> newMaturity = Optional.ofNullable((CaracteristicQualitativeValue) newValue.get(row.getMaturityCaracteristic().get())); + if (getModel().getMaturityCaracteristic().isPresent()) { + Optional<CaracteristicQualitativeValue> oldMaturity = Optional.ofNullable((CaracteristicQualitativeValue) oldValue.get(getModel().getMaturityCaracteristic().get())); + Optional<CaracteristicQualitativeValue> newMaturity = Optional.ofNullable((CaracteristicQualitativeValue) newValue.get(getModel().getMaturityCaracteristic().get())); if (log.isInfoEnabled()) { log.info("maturities : " + oldMaturity + " " + newMaturity); } @@ -296,8 +294,8 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } } - CaracteristicQualitativeValue oldGender = (CaracteristicQualitativeValue) oldValue.get(sexCaracteristic); - CaracteristicQualitativeValue newGender = (CaracteristicQualitativeValue) newValue.get(sexCaracteristic); + CaracteristicQualitativeValue oldGender = (CaracteristicQualitativeValue) oldValue.get(getModel().getSexCaracteristic()); + CaracteristicQualitativeValue newGender = (CaracteristicQualitativeValue) newValue.get(getModel().getSexCaracteristic()); if (!Objects.equals(oldGender, newGender)) { individualObservationUICache.decrementsObservationNb(oldGender, maturity, row.getSize()); individualObservationUICache.incrementsObservationNb(newGender, maturity, row.getSize(), Optional.ofNullable(row.getSamplingCode())); @@ -472,7 +470,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci this.speciesOrBenthosBatchUISupport = ui.getContextValue(SpeciesOrBenthosBatchUISupport.class, ui.getSpeciesOrBenthosContext()); this.weightUnit = speciesOrBenthosBatchUISupport.getWeightUnit(); - this.sexCaracteristic = getPersistenceService().getSexCaracteristic(); + Caracteristic sexCaracteristic = getPersistenceService().getSexCaracteristic(); SampleCategoryModel sampleCategoryModel = getDataContext().getSampleCategoryModel(); @@ -488,6 +486,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci SpeciesFrequencyUIModel model = new SpeciesFrequencyUIModel(speciesOrBenthosBatchUISupport, getConfig().getIndividualObservationWeightUnit(), sampleCategoryModel, + sexCaracteristic, defaultCaracteristic); this.ui.setContextValue(model); @@ -904,7 +903,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci if (optSpeciesProtocol.isPresent()) { SpeciesProtocol speciesProtocol = optSpeciesProtocol.get(); Rtp rtp; - CaracteristicQualitativeValue sampleCategoryValue = (CaracteristicQualitativeValue) speciesBatch.getSampleCategoryValue(sexCaracteristic.getIdAsInt()); + CaracteristicQualitativeValue sampleCategoryValue = (CaracteristicQualitativeValue) speciesBatch.getSampleCategoryValue(getModel().getSexCaracteristic().getIdAsInt()); if (sampleCategoryValue != null) { @@ -1360,7 +1359,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci IndividualObservationBatchTableModel tableModel = new IndividualObservationBatchTableModel(individualObservationWeightUnit, defaultCaracteristic, - sexCaracteristic, + getModel().getSexCaracteristic(), columnModel); obsTable.setModel(tableModel); @@ -1445,6 +1444,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { + getModel().setMaturityCaracteristic(maturityCaracteristic); getObsTableModel().setMaturityCaracteristic(maturityCaracteristic); if (maturityCaracteristic.isPresent()) { addMaturityCaracteristicColumnToModel(maturityCaracteristic.get()); 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 2b94081..896aa5e 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 @@ -48,6 +48,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; /** @@ -127,6 +128,8 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public static final String PROPERTY_NOT_EDITABLE_CARACTERISTIC = "notEditableCaracteristic"; + public static final String PROPERTY_MATURITY_CARACTERISTIC = "maturityCaracteristic"; + private final SpeciesOrBenthosBatchUISupport speciesOrBenthosBatchUISupport; /** @@ -326,6 +329,13 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa */ protected Collection<Caracteristic> notEditableCaracteristic; + protected final Caracteristic sexCaracteristic; + + /** + * Caracteristique de maturité du protocole + */ + protected Optional<Caracteristic> maturityCaracteristic; + protected final PropertyChangeListener rowInErrorChangedListener = new PropertyChangeListener() { @Override @@ -337,12 +347,14 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public SpeciesFrequencyUIModel(SpeciesOrBenthosBatchUISupport speciesOrBenthosBatchUISupport, WeightUnit individualObservationWeightUnit, SampleCategoryModel sampleCategoryModel, + Caracteristic sexCaracteristic, List<Caracteristic> defaultCaracteristic) { super(SpeciesBatchRowModel.class, null, null); this.speciesOrBenthosBatchUISupport = speciesOrBenthosBatchUISupport; this.weightUnit = speciesOrBenthosBatchUISupport.getWeightUnit(); this.individualObservationWeightUnit = individualObservationWeightUnit; this.sampleCategoryModel = sampleCategoryModel; + this.sexCaracteristic = sexCaracteristic; this.totalComputedOrNotWeight.addPropagateListener(PROPERTY_TOTAL_WEIGHT, this); setEmptyRows(new HashSet<>()); @@ -1055,6 +1067,20 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa firePropertyChange(PROPERTY_NOT_EDITABLE_CARACTERISTIC, oldValue, notEditableCaracteristic); } + public Caracteristic getSexCaracteristic() { + return sexCaracteristic; + } + + public Optional<Caracteristic> getMaturityCaracteristic() { + return maturityCaracteristic; + } + + public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { + Object oldValue = getMaturityCaracteristic(); + this.maturityCaracteristic = maturityCaracteristic; + firePropertyChange(PROPERTY_MATURITY_CARACTERISTIC, oldValue, maturityCaracteristic); + } + protected final void recomputeRowValidState(SpeciesFrequencyRowModel row) { // recompute row valid state -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm