branch feature/8231 updated (3fefd11 -> c9dcaca)
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 omits 3fefd11 stockage de la caractéristique de maturité et de sexe sur le modèle (fixes #8231) omits 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) omits 3eafba9 ajout d'une precondition pour eviter de decrementer une valeur à 0 (refs #8231) adds 5e82412 le poids rtp etait calculé meme quand le poids etait recopié depuis les observations individuelles (fixes #8225) adds 074584b Merge branch 'feature/8225' into 'develop' adds fd87d89 on supprime la colonne de maturité en fermant l'ui, pour avoir les même colonnes qu'à la création de l'écran (important pour la swing session) (fixes #8202) adds d8e19d2 Livrable #8202 Merge branch 'feature/8202' into develop new bdb3c79 ajout d'une precondition pour eviter de decrementer une valeur à 0 (refs #8231) new 1b40311 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 9dc3492 stockage de la caractéristique de maturité et de sexe sur le modèle (fixes #8231) new c9dcaca Amélioration du code This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (3fefd11) \ N -- N -- N refs/heads/feature/8231 (c9dcaca) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 4 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 c9dcaca4cfed91963e85ecf75bb65f0b45231a31 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 11 15:38:40 2016 +0200 Amélioration du code commit 9dc34920d5ad16374768a3efd16c6662e647dda4 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 1b40311009abbf86a44f240397793c0f2bbdb542 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 bdb3c798559b56c11b05dbca8e5372369079c865 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) Summary of changes: .../IndividualObservationBatchRowModel.java | 49 +++++----- .../IndividualObservationBatchTableModel.java | 54 +++++------ .../frequency/IndividualObservationUICache.java | 17 +++- .../frequency/SpeciesFrequencyUIHandler.java | 106 +++++++++++---------- .../species/frequency/SpeciesFrequencyUIModel.java | 61 ++++++++++-- 5 files changed, 172 insertions(+), 115 deletions(-) -- 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 bdb3c798559b56c11b05dbca8e5372369079c865 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 1b40311009abbf86a44f240397793c0f2bbdb542 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 9dc34920d5ad16374768a3efd16c6662e647dda4 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 a019c3b..a97f17c 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); @@ -912,7 +911,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) { @@ -1368,7 +1367,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci IndividualObservationBatchTableModel tableModel = new IndividualObservationBatchTableModel(individualObservationWeightUnit, defaultCaracteristic, - sexCaracteristic, + getModel().getSexCaracteristic(), columnModel); obsTable.setModel(tableModel); @@ -1453,6 +1452,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 540c274..0bf67f1 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>.
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 c9dcaca4cfed91963e85ecf75bb65f0b45231a31 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 11 15:38:40 2016 +0200 Amélioration du code --- .../IndividualObservationBatchRowModel.java | 49 +++++------ .../IndividualObservationBatchTableModel.java | 54 ++++++------ .../frequency/IndividualObservationUICache.java | 17 +++- .../frequency/SpeciesFrequencyUIHandler.java | 98 +++++++++++----------- .../species/frequency/SpeciesFrequencyUIModel.java | 59 +++++++++++-- 5 files changed, 163 insertions(+), 114 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 fc39ffc..1d62c39 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 @@ -61,9 +61,9 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel public static final String PROPERTY_DEFAULT_CARACTERISTICS = "defaultCaracteristics"; - public static final String PROPERTY_SAMPLING_CODE_PREFIX = "samplingCodePrefix"; - - public static final String PROPERTY_SAMPLING_CODE_ID = "samplingCodeId"; +// public static final String PROPERTY_SAMPLING_CODE_PREFIX = "samplingCodePrefix"; +// +// public static final String PROPERTY_SAMPLING_CODE_ID = "samplingCodeId"; /** * Delegate edit object. @@ -94,12 +94,12 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel */ protected final WeightUnit weightUnit; - /** - * Caracteristique de maturité - * - * @since 4.5 - */ - protected Optional<Caracteristic> maturityCaracteristic = Optional.empty(); +// /** +// * Caracteristique de maturité +// * +// * @since 4.5 +// */ +// protected Caracteristic maturityCaracteristic; /** * @since 4.5 @@ -382,6 +382,10 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel firePropertyChange(PROPERTY_SAMPLING_CODE, oldValue, samplingCode); } + public Optional<String> getOptionalSamplingCode() { + return Optional.ofNullable(editObject.getSamplingCode()); + } + public Integer getSamplingCodeId() { return SamplingCodePrefix.extractSamplingCodeIdFromSamplingCode(getSamplingCode()); } @@ -473,24 +477,15 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel addAllAttachment(source.getAttachment()); } - public Serializable getCaracteristicValue(Caracteristic caracteristic) { - CaracteristicMap allCaracteristics = CaracteristicMap.copy(defaultCaracteristics); - allCaracteristics.putAll(getCaracteristics()); - return allCaracteristics.get(caracteristic); - } - - public CaracteristicQualitativeValue getGender(Caracteristic sexCaracteristic) { - return (CaracteristicQualitativeValue) getCaracteristicValue(sexCaracteristic); - } - - public CaracteristicQualitativeValue getMaturityState(Caracteristic maturityCaracteristic) { - return (CaracteristicQualitativeValue) getCaracteristicValue(maturityCaracteristic); - } - - public Optional<CaracteristicQualitativeValue> getMaturityState(Optional<Caracteristic> maturityCaracteristic) { - if (!maturityCaracteristic.isPresent()) { - return Optional.empty(); + public CaracteristicQualitativeValue getCaracteristicQualitativeValue(Caracteristic caracteristic) { + CaracteristicQualitativeValue result = null; + if (caracteristic != null) { + result = getCaracteristics().getQualitativeValue(caracteristic); + if (result == null) { + result = defaultCaracteristics.getQualitativeValue(caracteristic); + } } - return Optional.ofNullable((CaracteristicQualitativeValue) getCaracteristicValue(maturityCaracteristic.get())); + return result; } + } 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 8209aa3..5b0322e 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 @@ -28,13 +28,15 @@ import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativ import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.sampling.SamplingCodePrefix; import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; import fr.ifremer.tutti.ui.swing.util.table.CaracteristicColumnIdentifier; import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.io.Serializable; -import java.util.Collection; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -99,18 +101,30 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab protected Caracteristic lengthstepCaracteristic; - protected Caracteristic sexCaracteristic; - - protected Optional<Caracteristic> maturityCaracteristic = Optional.empty(); + protected final SpeciesFrequencyUIModel parentModel; public IndividualObservationBatchTableModel(WeightUnit weightUnit, - Collection<Caracteristic> defaultCaracteristicsSet, - Caracteristic sexCaracteristic, + SpeciesFrequencyUIModel parentModel, TableColumnModelExt columnModel) { super(columnModel, true, false); + this.parentModel=parentModel; this.weightUnit = weightUnit; - this.defaultCaracteristicsMap = CaracteristicMap.fromCollection(defaultCaracteristicsSet); - this.sexCaracteristic = sexCaracteristic; + // Lorsque la caracteristique de maturité change, on met à jour defaultCaracteristicsMap + this.parentModel.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_MATURITY_CARACTERISTIC, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Caracteristic oldValue = (Caracteristic) evt.getOldValue(); + Caracteristic newValue = (Caracteristic) evt.getNewValue(); + if (oldValue!=null) { + defaultCaracteristicsMap.remove(oldValue); + } + if (newValue!=null) { + defaultCaracteristicsMap.put(newValue, null); + } + + } + }); + this.defaultCaracteristicsMap = CaracteristicMap.fromCollection(parentModel.getDefaultCaracteristic()); setNoneEditableCols(RANK); } @@ -135,20 +149,6 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } } - public Optional<Caracteristic> getMaturityCaracteristic() { - return maturityCaracteristic; - } - - public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { - if (this.maturityCaracteristic.isPresent()) { - defaultCaracteristicsMap.remove(this.maturityCaracteristic.get()); - } - this.maturityCaracteristic = maturityCaracteristic; - if (maturityCaracteristic.isPresent()) { - defaultCaracteristicsMap.put(maturityCaracteristic.get(), null); - } - } - public void addMaturityIdentifier(ColumnIdentifier<IndividualObservationBatchRowModel> maturityIdentifer) { identifiers.add(maturityIdentifer); } @@ -178,12 +178,12 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab if (getRowCount() > 0) { IndividualObservationBatchRowModel lastRow = getRows().get(getRowCount() - 1); - CaracteristicQualitativeValue gender = lastRow.getGender(sexCaracteristic); - result.getDefaultCaracteristics().put(sexCaracteristic, gender); + CaracteristicQualitativeValue gender = parentModel.getGender(lastRow); + parentModel.setGenderValueToDefaultCaracterictis(result, gender); - if (maturityCaracteristic.isPresent()) { - CaracteristicQualitativeValue maturityState = lastRow.getMaturityState(maturityCaracteristic.get()); - result.getDefaultCaracteristics().put(maturityCaracteristic.get(), maturityState); + if (parentModel.withMaturityCaracteristic()) { + Optional<CaracteristicQualitativeValue> maturityState = parentModel.getOptionalMaturityValue(lastRow); + parentModel.setMaturityValueToDefaultCaracterictis(result, maturityState.orElse(null)); } } 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 a9990f1..03b7b97 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 @@ -210,7 +210,10 @@ public class IndividualObservationUICache implements Closeable { */ public void increments(IndividualObservationBatchRowModel row) { - incrementsObservationNb(row.getGender(uiModel.getSexCaracteristic()), row.getMaturityState(uiModel.getMaturityCaracteristic()), row.getSize(), Optional.ofNullable(row.getSamplingCode())); + incrementsObservationNb(uiModel.getGender(row), + uiModel.getOptionalMaturityValue(row), + row.getSize(), + row.getOptionalSamplingCode()); } @@ -298,7 +301,10 @@ public class IndividualObservationUICache implements Closeable { */ public void decrements(IndividualObservationBatchRowModel row) { - decrementsObservationNb(row.getGender(uiModel.getSexCaracteristic()), row.getMaturityState(uiModel.getMaturityCaracteristic()), row.getSize(), Optional.ofNullable(row.getSamplingCode())); + decrementsObservationNb(uiModel.getGender(row), + uiModel.getOptionalMaturityValue(row), + row.getSize(), + row.getOptionalSamplingCode()); } @@ -462,10 +468,13 @@ public class IndividualObservationUICache implements Closeable { IndividualObservationBatchRowModel selectedRow = optSelectedRow.get(); - Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), selectedRow.getMaturityState(uiModel.getMaturityCaracteristic())); + CruiseSamplingCache cruiseSamplingCache = samplingCache.get(); + + Optional<CaracteristicQualitativeValue> maturityQualitativeValue = uiModel.getOptionalMaturityValue(selectedRow); + Boolean maturity = cruiseSamplingCache.getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), maturityQualitativeValue); int lengthstep = uiModel.getLengthStepInMm(selectedRow.getSize()); - event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(uiModel.getSexCaracteristic()), lengthstep); + event = cruiseSamplingCache.getEventForSummary(fishingOperation, species, maturity, uiModel.getGender(selectedRow), 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 a97f17c..e1e0437 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 @@ -120,7 +120,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; import java.beans.VetoableChangeListener; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; @@ -218,39 +217,40 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci IndividualObservationBatchRowModel row = (IndividualObservationBatchRowModel) evt.getSource(); String propertyName = evt.getPropertyName(); - CaracteristicQualitativeValue gender = row.getGender(getModel().getSexCaracteristic()); - Optional<CaracteristicQualitativeValue> maturity = row.getMaturityState(getModel().getMaturityCaracteristic()); + SpeciesFrequencyUIModel model = getModel(); + + CaracteristicQualitativeValue gender = model.getGender(row); + Optional<CaracteristicQualitativeValue> maturity = model.getOptionalMaturityValue(row); switch (propertyName) { - case IndividualObservationBatchRowModel.PROPERTY_SIZE: - { + case IndividualObservationBatchRowModel.PROPERTY_SIZE: { - Float oldValue = (Float) evt.getOldValue(); - Float newValue = (Float) evt.getNewValue(); + Float oldValue = (Float) evt.getOldValue(); + Float newValue = (Float) evt.getNewValue(); - if (oldValue != null) { - individualObservationUICache.decrementsObservationNb(gender, maturity, oldValue, Optional.ofNullable(row.getSamplingCode())); - } - if (newValue != null) { - individualObservationUICache.incrementsObservationNb(gender, maturity, newValue, Optional.ofNullable(row.getSamplingCode())); - } + if (oldValue != null) { + individualObservationUICache.decrementsObservationNb(gender, maturity, oldValue, row.getOptionalSamplingCode()); + } + if (newValue != null) { + individualObservationUICache.incrementsObservationNb(gender, maturity, newValue, row.getOptionalSamplingCode()); + } - // we only update the frequencies if the row is valid - if (row.isValid() && getModel().mustCopyIndividualObservationSize()) { - updateFrequencyRowsNumbers(oldValue, newValue); + // we only update the frequencies if the row is valid + if (row.isValid() && model.mustCopyIndividualObservationSize()) { + updateFrequencyRowsNumbers(oldValue, newValue); - Float weight = row.getWeight(); - if (getModel().mustCopyIndividualObservationWeight() && weight != null) { - updateFrequencyRowsWeights(oldValue, -weight); - updateFrequencyRowsWeights(newValue, weight); - } + Float weight = row.getWeight(); + if (model.mustCopyIndividualObservationWeight() && weight != null) { + updateFrequencyRowsWeights(oldValue, -weight); + updateFrequencyRowsWeights(newValue, weight); } } - break; + } + break; case IndividualObservationBatchRowModel.PROPERTY_WEIGHT: - if (row.isValid() && getModel().mustCopyIndividualObservationWeight()) { + if (row.isValid() && model.mustCopyIndividualObservationWeight()) { Float oldValue = (Float) evt.getOldValue(); Float newValue = (Float) evt.getNewValue(); @@ -282,23 +282,23 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci log.info("caracteristics changed"); } - 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 (model.withMaturityCaracteristic()) { + Optional<CaracteristicQualitativeValue> oldMaturity = model.getOptionalMaturityValue(oldValue); + Optional<CaracteristicQualitativeValue> newMaturity = model.getOptionalMaturityValue(newValue); if (log.isInfoEnabled()) { log.info("maturities : " + oldMaturity + " " + newMaturity); } if (!Objects.equals(oldMaturity, newMaturity)) { individualObservationUICache.decrementsObservationNb(gender, oldMaturity, row.getSize()); - individualObservationUICache.incrementsObservationNb(gender, newMaturity, row.getSize(), Optional.ofNullable(row.getSamplingCode())); + individualObservationUICache.incrementsObservationNb(gender, newMaturity, row.getSize(), row.getOptionalSamplingCode()); } } - CaracteristicQualitativeValue oldGender = (CaracteristicQualitativeValue) oldValue.get(getModel().getSexCaracteristic()); - CaracteristicQualitativeValue newGender = (CaracteristicQualitativeValue) newValue.get(getModel().getSexCaracteristic()); + CaracteristicQualitativeValue oldGender = (CaracteristicQualitativeValue) model.getGender(oldValue); + CaracteristicQualitativeValue newGender = (CaracteristicQualitativeValue) model.getGender(newValue); if (!Objects.equals(oldGender, newGender)) { individualObservationUICache.decrementsObservationNb(oldGender, maturity, row.getSize()); - individualObservationUICache.incrementsObservationNb(newGender, maturity, row.getSize(), Optional.ofNullable(row.getSamplingCode())); + individualObservationUICache.incrementsObservationNb(newGender, maturity, row.getSize(), row.getOptionalSamplingCode()); } } break; @@ -320,18 +320,18 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci case IndividualObservationBatchRowModel.PROPERTY_VALID: // if the row's valid state changes, then remove or readd it to the frequencies - if (!getModel().isRowComputationInProgress()) { + if (!model.isRowComputationInProgress()) { boolean oldValue = (boolean) evt.getOldValue(); boolean newValue = (boolean) evt.getNewValue(); - if (oldValue && getModel().mustCopyIndividualObservationSize()) { + if (oldValue && model.mustCopyIndividualObservationSize()) { updateFrequencyRowsNumbers(row.getSize(), null); } if (newValue) { - if (getModel().mustCopyIndividualObservationSize()) { + if (model.mustCopyIndividualObservationSize()) { updateFrequencyRowsNumbers(null, row.getSize()); } - if (getModel().mustCopyIndividualObservationWeight()) { + if (model.mustCopyIndividualObservationWeight()) { updateFrequencyRowsWeights(row.getSize(), row.getWeight()); } } @@ -339,10 +339,10 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci break; } - getModel().recomputeIndividualObservationRowValidState(row); - getModel().recomputeCanEditLengthStep(); + model.recomputeIndividualObservationRowValidState(row); + model.recomputeCanEditLengthStep(); - getModel().setModify(true); + model.setModify(true); } @@ -935,9 +935,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // Add maturity column if necessary - Optional<Caracteristic> maturityCaracteristic = speciesMaturityPmfmId.map(maturityCaracteristics::get); + Optional<Caracteristic> optionalMaturityCaracteristic = speciesMaturityPmfmId.map(maturityCaracteristics::get); - setMaturityCaracteristic(maturityCaracteristic); + setMaturityCaracteristic(optionalMaturityCaracteristic.orElse(null)); loadFrequenciesAndObservations(frequency, individualObservations); @@ -1366,8 +1366,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // create obsTable model IndividualObservationBatchTableModel tableModel = new IndividualObservationBatchTableModel(individualObservationWeightUnit, - defaultCaracteristic, - getModel().getSexCaracteristic(), + getModel(), +// defaultCaracteristic, +// getModel().getSexCaracteristic(), columnModel); obsTable.setModel(tableModel); @@ -1451,11 +1452,11 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci ui.getSamplingWarningLabel().setVisible(false); } - public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { + public void setMaturityCaracteristic(Caracteristic maturityCaracteristic) { getModel().setMaturityCaracteristic(maturityCaracteristic); - getObsTableModel().setMaturityCaracteristic(maturityCaracteristic); - if (maturityCaracteristic.isPresent()) { - addMaturityCaracteristicColumnToModel(maturityCaracteristic.get()); +// getObsTableModel().setMaturityCaracteristic(maturityCaracteristic); + if (maturityCaracteristic != null) { + addMaturityCaracteristicColumnToModel(maturityCaracteristic); } } @@ -1866,12 +1867,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci newRow.addPropertyChangeListener(obsChangedListener); newRow.setValid(true); - if (getObsTableModel().getMaturityCaracteristic().isPresent()) { - - Caracteristic caracteristicKey = getObsTableModel().getMaturityCaracteristic().get(); - Serializable caracteristicValue = newRow.getCaracteristics().remove(caracteristicKey); - newRow.getDefaultCaracteristics().putIfAbsent(caracteristicKey, caracteristicValue); - } + model.moveMaturityValueFromCaracteristicsToDefaultCaracteristics(newRow); obsRows.add(newRow); 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 0bf67f1..e8e6cd2 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 @@ -22,10 +22,12 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; * #L% */ +import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.data.CopyIndividualObservationMode; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; @@ -43,6 +45,7 @@ import org.jfree.data.xy.XYSeriesCollection; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; +import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -334,7 +337,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa /** * Caracteristique de maturité du protocole */ - protected Optional<Caracteristic> maturityCaracteristic; + protected Caracteristic maturityCaracteristic; protected final PropertyChangeListener rowInErrorChangedListener = new PropertyChangeListener() { @@ -1071,16 +1074,54 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa return sexCaracteristic; } - public Optional<Caracteristic> getMaturityCaracteristic() { - return maturityCaracteristic; + public CaracteristicQualitativeValue getGender(IndividualObservationBatchRowModel row) { + return row.getCaracteristicQualitativeValue(sexCaracteristic); } - public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { - Object oldValue = getMaturityCaracteristic(); + public CaracteristicQualitativeValue getGender(CaracteristicMap caracteristicMap) { + return caracteristicMap.getQualitativeValue(sexCaracteristic); + } + + public boolean withMaturityCaracteristic() { + return maturityCaracteristic != null; + } + + public void setMaturityCaracteristic(Caracteristic maturityCaracteristic) { + Object oldValue = this.maturityCaracteristic; this.maturityCaracteristic = maturityCaracteristic; firePropertyChange(PROPERTY_MATURITY_CARACTERISTIC, oldValue, maturityCaracteristic); } + public Optional<CaracteristicQualitativeValue> getOptionalMaturityValue(IndividualObservationBatchRowModel row) { + + CaracteristicQualitativeValue caracteristicValue = null; + if (withMaturityCaracteristic()) { + caracteristicValue = row.getCaracteristicQualitativeValue(maturityCaracteristic); + } + return Optional.ofNullable(caracteristicValue); + + } + + public Optional<CaracteristicQualitativeValue> getOptionalMaturityValue(CaracteristicMap caracteristicMap) { + + CaracteristicQualitativeValue caracteristicValue = null; + if (withMaturityCaracteristic()) { + caracteristicValue = caracteristicMap.getQualitativeValue(maturityCaracteristic); + } + return Optional.ofNullable(caracteristicValue); + + } + + public void moveMaturityValueFromCaracteristicsToDefaultCaracteristics(IndividualObservationBatchRowModel newRow) { + + if (withMaturityCaracteristic()) { + + Serializable caracteristicValue = newRow.getCaracteristics().remove(maturityCaracteristic); + newRow.getDefaultCaracteristics().putIfAbsent(maturityCaracteristic, caracteristicValue); + + } + } + protected final void recomputeRowValidState(SpeciesFrequencyRowModel row) { // recompute row valid state @@ -1116,4 +1157,12 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public SpeciesOrBenthosBatchUISupport getSpeciesOrBenthosBatchUISupport() { return speciesOrBenthosBatchUISupport; } + + public void setMaturityValueToDefaultCaracterictis(IndividualObservationBatchRowModel result, CaracteristicQualitativeValue maturityState) { + result.getDefaultCaracteristics().put(maturityCaracteristic, maturityState); + } + + public void setGenderValueToDefaultCaracterictis(IndividualObservationBatchRowModel result, CaracteristicQualitativeValue gender) { + result.getDefaultCaracteristics().put(sexCaracteristic, gender); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm