branch feature/8157 updated (a327eb1 -> cb8e135)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8157 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git from a327eb1 lengthstep non null dans l'event (refs #8157) new cb8e135 - finalement, on ne permet pas de code prélèvement si pas de taille - on remplace le code campagne par le code ruben s'iln 'y en a pas - dans le prefixe, on met ~ au lieu de # quand il n'y a pas de code (fixes #8157) The 1 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 cb8e1353c086954ddba83e9596536a12bcd2dfa0 Author: Kevin Morin <morin@codelutin.com> Date: Tue Apr 5 18:16:24 2016 +0200 - finalement, on ne permet pas de code prélèvement si pas de taille - on remplace le code campagne par le code ruben s'iln 'y en a pas - dans le prefixe, on met ~ au lieu de # quand il n'y a pas de code (fixes #8157) Summary of changes: .../cps/CalcifiedPiecesSamplingExportService.java | 8 +- .../service/export/cps/SamplingNumberRowModel.java | 9 +- .../tutti/service/sampling/CacheExtractedKey.java | 6 +- .../service/sampling/CruiseSamplingCache.java | 39 +++-- .../sampling/CruiseSamplingCacheLoader.java | 2 +- .../sampling/CruiseSamplingInternalCache.java | 34 ++-- .../tutti/service/sampling/SamplingCodePrefix.java | 7 +- .../IndividualObservationBatchTableModel.java | 2 +- .../frequency/IndividualObservationUICache.java | 7 +- .../frequency/SpeciesFrequencyUIHandler.java | 179 +++++++++++---------- 10 files changed, 149 insertions(+), 144 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/8157 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit cb8e1353c086954ddba83e9596536a12bcd2dfa0 Author: Kevin Morin <morin@codelutin.com> Date: Tue Apr 5 18:16:24 2016 +0200 - finalement, on ne permet pas de code prélèvement si pas de taille - on remplace le code campagne par le code ruben s'iln 'y en a pas - dans le prefixe, on met ~ au lieu de # quand il n'y a pas de code (fixes #8157) --- .../cps/CalcifiedPiecesSamplingExportService.java | 8 +- .../service/export/cps/SamplingNumberRowModel.java | 9 +- .../tutti/service/sampling/CacheExtractedKey.java | 6 +- .../service/sampling/CruiseSamplingCache.java | 39 +++-- .../sampling/CruiseSamplingCacheLoader.java | 2 +- .../sampling/CruiseSamplingInternalCache.java | 34 ++-- .../tutti/service/sampling/SamplingCodePrefix.java | 7 +- .../IndividualObservationBatchTableModel.java | 2 +- .../frequency/IndividualObservationUICache.java | 7 +- .../frequency/SpeciesFrequencyUIHandler.java | 179 +++++++++++---------- 10 files changed, 149 insertions(+), 144 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/CalcifiedPiecesSamplingExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/CalcifiedPiecesSamplingExportService.java index dfb814a..e851d9f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/CalcifiedPiecesSamplingExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/CalcifiedPiecesSamplingExportService.java @@ -12,11 +12,11 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiDataContext; import fr.ifremer.tutti.service.TuttiServiceContext; import fr.ifremer.tutti.service.sampling.CacheExtractedKey; -import fr.ifremer.tutti.service.sampling.CruiseSamplingCache; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.Export; +import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.application.ApplicationTechnicalException; import java.io.BufferedWriter; @@ -58,12 +58,12 @@ public class CalcifiedPiecesSamplingExportService extends AbstractTuttiService { TuttiDataContext dataContext = context.getDataContext(); Preconditions.checkState(dataContext.isCruiseSamplingCacheLoaded()); - SamplingNumberRowModel csvModel = new SamplingNumberRowModel(context.getConfig().getCsvSeparator()); + Decorator<Species> decorator = decoratorService.getDecoratorByType(Species.class, DecoratorService.WITH_SURVEY_CODE_NO_NAME); + SamplingNumberRowModel csvModel = new SamplingNumberRowModel(context.getConfig().getCsvSeparator(), decorator); Map<String, Species> referenceSpeciesByReferenceTaxonId = Speciess.splitReferenceSpeciesByReferenceTaxonId(dataContext.getReferentSpecies()); - CruiseSamplingCache cruiseSamplingCache = context.getDataContext().getOptionalCruiseSamplingCache().get(); - List<CacheExtractedKey> rows = cruiseSamplingCache.getSamplingNumbers(referenceSpeciesByReferenceTaxonId); + List<CacheExtractedKey> rows = context.getDataContext().getOptionalCruiseSamplingCache().get().getSamplingNumbers(referenceSpeciesByReferenceTaxonId); BufferedWriter writer = null; try { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/SamplingNumberRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/SamplingNumberRowModel.java index 4bbea86..b59333d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/SamplingNumberRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/cps/SamplingNumberRowModel.java @@ -6,6 +6,7 @@ import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; import fr.ifremer.tutti.service.csv.TuttiCsvUtil; import fr.ifremer.tutti.service.sampling.CacheExtractedKey; import org.nuiton.csv.ValueFormatter; +import org.nuiton.decorator.Decorator; import static org.nuiton.i18n.I18n.t; @@ -15,24 +16,24 @@ import static org.nuiton.i18n.I18n.t; */ public class SamplingNumberRowModel extends AbstractTuttiImportExportModel<CacheExtractedKey> { - public SamplingNumberRowModel(char separator) { + public SamplingNumberRowModel(char separator, Decorator<Species> speciesCodeDecorator) { super(separator); newColumnForExport(t("tutti.service.calcifiedPiecesSamplingReport.header.surveyCode"), CacheExtractedKey.PROPERTY_SPECIES, new ValueFormatter<Species>() { @Override public String format(Species species) { - return String.valueOf(species.getSurveyCode()); + return speciesCodeDecorator.toString(species); } }); newColumnForExport(t("tutti.service.calcifiedPiecesSamplingReport.header.geniusName"), CacheExtractedKey.PROPERTY_SPECIES, new ValueFormatter<Species>() { @Override public String format(Species species) { - return String.valueOf(species.getName()); + return species.getName(); } }); - newColumnForExport(t("tutti.service.calcifiedPiecesSamplingReport.header.lengthStep"), CacheExtractedKey.PROPERTY_LENGTH_STEP, TuttiCsvUtil.INTEGER); + newColumnForExport(t("tutti.service.calcifiedPiecesSamplingReport.header.lengthStep"), CacheExtractedKey.PROPERTY_LENGTH_STEP, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport(t("tutti.service.calcifiedPiecesSamplingReport.header.maturity"), CacheExtractedKey.PROPERTY_MATURITY, new ValueFormatter<Boolean>() { @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CacheExtractedKey.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CacheExtractedKey.java index a86bb28..7b9d064 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CacheExtractedKey.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CacheExtractedKey.java @@ -19,17 +19,17 @@ public class CacheExtractedKey implements Serializable { public static final String PROPERTY_MAX_BY_LENGTH_STEP = "maxByLengthStep"; protected Species species; - protected Integer lengthStep; + protected int lengthStep; protected Boolean maturity; protected QualitativeValueId sex; protected int samplingNb; protected Integer maxByLengthStep; - public Integer getLengthStep() { + public int getLengthStep() { return lengthStep; } - public void setLengthStep(Integer lengthStep) { + public void setLengthStep(int lengthStep) { this.lengthStep = lengthStep; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java index fe84fa8..0420d51 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java @@ -115,7 +115,7 @@ public class CruiseSamplingCache implements Closeable { */ private final Map<Integer, MutableInt> highestSamplingCodeBySpecies = new HashMap<>(); - public CruiseSamplingCache(Integer cruiseId, TuttiProtocol protocol, Caracteristic sexCaracteristic, Collection<Caracteristic> maturityCaracteristics) { + public CruiseSamplingCache(int cruiseId, TuttiProtocol protocol, Caracteristic sexCaracteristic, Collection<Caracteristic> maturityCaracteristics) { this.cruiseId = cruiseId; this.sexCaracteristic = sexCaracteristic; this.protocolId = protocol.getId(); @@ -135,7 +135,7 @@ public class CruiseSamplingCache implements Closeable { protocol.getMaturityCaracteristics().forEach(mc -> matureStatesByMaturityCracteristic.putAll(mc.getId(), mc.getMatureStateIds())); } - public Integer getCruiseId() { + public int getCruiseId() { return cruiseId; } @@ -187,7 +187,7 @@ public class CruiseSamplingCache implements Closeable { * @param optionalZone la zone (facultative) de l'opération de pêche concernée * @param individualObservationBatch l'observation individuelle à ajouter au cache */ - public void addIndividualObservation(Integer fishingOperationId, + public void addIndividualObservation(int fishingOperationId, Optional<Zone> optionalZone, IndividualObservationBatch individualObservationBatch) { @@ -201,8 +201,8 @@ public class CruiseSamplingCache implements Closeable { Boolean maturity = getMaturity(individualObservationBatch); // l'observation peut ne pas avoir de taille si elle a un code de prélèvement - Float lengthStep = individualObservationBatch.getSize(); - Integer lengthStepInMm = lengthStep == null ? null : Numbers.convertToMm(lengthStep, individualObservationBatch.getLengthStepCaracteristic().getUnit()); + float lengthStep = individualObservationBatch.getSize(); + int lengthStepInMm = Numbers.convertToMm(lengthStep, individualObservationBatch.getLengthStepCaracteristic().getUnit()); CaracteristicQualitativeValue gender = individualObservationBatch.getCaracteristics().getQualitativeValue(sexCaracteristic); @@ -259,12 +259,12 @@ public class CruiseSamplingCache implements Closeable { * @param maturity la maturité de l'échantillon (peut-être null) * @param lengthStep la classe de taille de l'échantillon (en mm) */ - public void addIndividualObservation(Integer fishingOperationId, + public void addIndividualObservation(int fishingOperationId, Optional<Zone> optionalZone, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - Integer lengthStep) { + int lengthStep) { Objects.requireNonNull(fishingOperationId); Objects.requireNonNull(species); @@ -359,12 +359,12 @@ public class CruiseSamplingCache implements Closeable { * @param lengthStep la classe de taille de l'échantillon (en mm) * @param samplingCode le code de prélèvement ajouté */ - public void addSampling(Integer fishingOperationId, + public void addSampling(int fishingOperationId, Optional<Zone> optionalZone, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - Integer lengthStep, + int lengthStep, String samplingCode) { Objects.requireNonNull(fishingOperationId); @@ -407,7 +407,7 @@ public class CruiseSamplingCache implements Closeable { * @param optionalZone la zone (facultative) de l'opération de pêche concernée * @param individualObservationBatches les observations individuelles à supprimer du cache */ - public void removeIndividualObservations(Integer fishingOperationId, + public void removeIndividualObservations(int fishingOperationId, Optional<Zone> optionalZone, Collection<IndividualObservationBatch> individualObservationBatches) { @@ -475,7 +475,7 @@ public class CruiseSamplingCache implements Closeable { * @param maturity la maturité de l'échantillon (peut-être null) * @param lengthStep la classe de taille de l'échantillon (en mm) */ - public void removeIndividualObservation(Integer fishingOperationId, + public void removeIndividualObservation(int fishingOperationId, Optional<Zone> optionalZone, Species species, CaracteristicQualitativeValue gender, @@ -559,7 +559,7 @@ public class CruiseSamplingCache implements Closeable { * @param lengthStep la classe de taille de l'échantillon (en mm) * @param samplingCode le code de prélèvement supprimé */ - public void removeSampling(Integer fishingOperationId, + public void removeSampling(int fishingOperationId, Optional<Zone> optionalZone, Species species, CaracteristicQualitativeValue gender, @@ -667,10 +667,7 @@ public class CruiseSamplingCache implements Closeable { listeners.remove(SamplingListener.class, listener); } - public Optional<CalcifiedPiecesSamplingDefinition> getCalcifiedPiecesSamplingDefinition(Species species, Boolean maturity, Integer lengthStep) { - if (lengthStep == null) { - return Optional.empty(); - } + public Optional<CalcifiedPiecesSamplingDefinition> getCalcifiedPiecesSamplingDefinition(Species species, Boolean maturity, int lengthStep) { Collection<CalcifiedPiecesSamplingDefinition> cpsDefinitions = cpsDefinitionsBySpecies.get(species.getReferenceTaxonId()); return cpsDefinitions.stream() .filter(cpsDef -> Objects.equals(cpsDef.getMaturity(), maturity) @@ -725,7 +722,7 @@ public class CruiseSamplingCache implements Closeable { return maturity; } - public Boolean getMaturity(Integer speciesId, Optional<CaracteristicQualitativeValue> maturityQualitativeValue) { + public Boolean getMaturity(int speciesId, Optional<CaracteristicQualitativeValue> maturityQualitativeValue) { Boolean maturity = null; Optional<Caracteristic> maturityCaracteristic = Optional.ofNullable(maturityCaracteristicBySpecies.get(speciesId)); if (maturityCaracteristic.isPresent() && maturityQualitativeValue.isPresent()) { @@ -734,15 +731,15 @@ public class CruiseSamplingCache implements Closeable { return maturity; } - public int getNextSamplingCodeId(Integer speciesId) { + public int getNextSamplingCodeId(int speciesId) { MutableInt samplingCode = highestSamplingCodeBySpecies.get(speciesId); return (samplingCode == null ? 0 : samplingCode.intValue()) + 1; // return highestSamplingCodeBySpecies.getOrDefault(speciesId, 0) + 1; } - protected int addSamplingCode(Integer speciesId, String samplingCode) { + protected int addSamplingCode(int speciesId, String samplingCode) { String[] codeParts = samplingCode.split("#"); - Integer code = Integer.parseInt(codeParts[codeParts.length - 1]); + int code = Integer.parseInt(codeParts[codeParts.length - 1]); // increment the highest sampling code if it is this code // return highestSamplingCodeBySpecies.compute(speciesId, @@ -761,7 +758,7 @@ public class CruiseSamplingCache implements Closeable { } - protected void removeSamplingCode(Integer speciesId, String samplingCode) { + protected void removeSamplingCode(int speciesId, String samplingCode) { int code = SamplingCodePrefix.extractSamplingCodeIdFromSamplingCode(samplingCode); // decrement the highest sampling code if it is this code diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java index ad42381..6406a1a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCacheLoader.java @@ -95,7 +95,7 @@ public class CruiseSamplingCacheLoader { Optional<Zone> optionalZone = cruiseSamplingCache.tryFindZone(fishingOperation); - allIndividualObservationBatchsForFishingOperation.stream().filter(obs -> obs.getSize() != null || obs.getSamplingCode() != null).forEach( + allIndividualObservationBatchsForFishingOperation.stream().filter(obs -> obs.getSize() != null).forEach( individualObservationBatch -> cruiseSamplingCache.addIndividualObservation(fishingOperationId, optionalZone, individualObservationBatch)); }); 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 de97c1a..9bd9b1a 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 @@ -56,10 +56,10 @@ class CruiseSamplingInternalCache implements Closeable { private static final String KEY_SEPARATOR = "#"; - public static String createSamplingKey(Species species, CaracteristicQualitativeValue gender, Boolean maturity, Integer lengthStep) { + public static String createSamplingKey(Species species, CaracteristicQualitativeValue gender, Boolean maturity, int lengthStep) { Objects.requireNonNull(species); return species.getReferenceTaxonId() + KEY_SEPARATOR + (gender == null ? "" : gender.getId()) + - KEY_SEPARATOR + (maturity == null ? "" : maturity.toString()) + KEY_SEPARATOR + (lengthStep == null ? "" : lengthStep.intValue()); + KEY_SEPARATOR + (maturity == null ? "" : maturity.toString()) + KEY_SEPARATOR + lengthStep; } public static String addPrefixKey(Serializable prefix, String key) { @@ -199,28 +199,22 @@ class CruiseSamplingInternalCache implements Closeable { Species species = speciesById.get(nextToken); key.setSpecies(species); - if (i < keyTokens.length) { - nextToken = keyTokens[i++]; - if (!StringUtils.isEmpty(nextToken)) { - QualitativeValueId sex = QualitativeValueId.fromValue(Integer.parseInt(nextToken)); - key.setSex(sex); - } + nextToken = keyTokens[i++]; + if (!StringUtils.isEmpty(nextToken)) { + QualitativeValueId sex = QualitativeValueId.fromValue(Integer.parseInt(nextToken)); + key.setSex(sex); } - if (i < keyTokens.length) { - nextToken = keyTokens[i++]; - if (!StringUtils.isEmpty(nextToken)) { - Boolean maturity = Boolean.parseBoolean(nextToken); - key.setMaturity(maturity); - } + nextToken = keyTokens[i++]; + if (!StringUtils.isEmpty(nextToken)) { + Boolean maturity = Boolean.parseBoolean(nextToken); + key.setMaturity(maturity); } - if (i < keyTokens.length) { - nextToken = keyTokens[i++]; - if (!StringUtils.isEmpty(nextToken)) { - Integer lengthStep = Integer.parseInt(nextToken); - key.setLengthStep(lengthStep); - } + nextToken = keyTokens[i++]; + if (!StringUtils.isEmpty(nextToken)) { + int lengthStep = Integer.parseInt(nextToken); + key.setLengthStep(lengthStep); } key.setSamplingNb(entry.getValue().getSamplingNb()); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java index 2e29d42..6a5528f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingCodePrefix.java @@ -32,12 +32,17 @@ import java.util.Objects; */ public class SamplingCodePrefix { - public static final String SEPARATOR = "#"; + public static final String SEPARATOR = "#"; + public static final String NO_SURVEY_CODE_LABEL = "~"; + protected final String prefix; protected final String species; public SamplingCodePrefix(String prefix, String species) { this.prefix = prefix; + if (SEPARATOR.equals(species)) { + species = NO_SURVEY_CODE_LABEL; + } this.species = species; } 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 3e272c1..79ae366 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 @@ -247,7 +247,7 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } else if (SAMPLING_CODE.equals(columnIdentifier)) { - editable = getValueAt(rowIndex, columnIndex) == null; + editable = getValueAt(rowIndex, columnIndex) == null && getValueAt(rowIndex, identifiers.indexOf(SIZE)) != null; } else { editable = super.isCellEditable(rowIndex, columnIndex, columnIdentifier); 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 f6a03ab..7358b26 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 @@ -307,7 +307,7 @@ public class IndividualObservationUICache implements Closeable { */ public void incrementsSamplingNb(CaracteristicQualitativeValue gender, Optional<CaracteristicQualitativeValue> maturityQualitativeValue, - float lengthStep, + Float lengthStep, String samplingCode) { if (!on) { @@ -318,11 +318,12 @@ public class IndividualObservationUICache implements Closeable { } Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), maturityQualitativeValue); + Integer lengthStepInMm = lengthStep == null ? null : uiModel.getLengthStepInMm(lengthStep); samplingCache.get().addSampling(fishingOperation, species, gender, maturity, - uiModel.getLengthStepInMm(lengthStep), + lengthStepInMm, samplingCode); // Le code n'est plus utilisable @@ -395,7 +396,7 @@ public class IndividualObservationUICache implements Closeable { */ public void decrementsSamplingNb(CaracteristicQualitativeValue gender, Optional<CaracteristicQualitativeValue> maturityQualitativeValue, - float lengthStep, + Float lengthStep, String samplingCode) { if (!on) { 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 e81ea30..3bc8188 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 @@ -222,115 +222,122 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci CaracteristicQualitativeValue gender = row.getGender(sexCaracteristic); Optional<CaracteristicQualitativeValue> maturity = row.getMaturityState(); - if (IndividualObservationBatchRowModel.PROPERTY_SIZE.equals(propertyName)) { + switch (propertyName) { + 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, Optional.ofNullable(row.getSamplingCode())); + } + if (newValue != null) { + individualObservationUICache.incrementsObservationNb(gender, maturity, newValue, Optional.ofNullable(row.getSamplingCode())); + } - // 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() && getModel().mustCopyIndividualObservationSize()) { + updateFrequencyRowsNumbers(oldValue, newValue); - Float weight = row.getWeight(); - if (getModel().mustCopyIndividualObservationWeight() && weight != null) { - updateFrequencyRowsWeights(oldValue, -weight); - updateFrequencyRowsWeights(newValue, weight); + Float weight = row.getWeight(); + if (getModel().mustCopyIndividualObservationWeight() && weight != null) { + updateFrequencyRowsWeights(oldValue, -weight); + updateFrequencyRowsWeights(newValue, weight); + } + } } - } - } + break; - if (row.isValid() && getModel().mustCopyIndividualObservationWeight() - && IndividualObservationBatchRowModel.PROPERTY_WEIGHT.equals(propertyName)) { + case IndividualObservationBatchRowModel.PROPERTY_WEIGHT: + if (row.isValid() && getModel().mustCopyIndividualObservationWeight()) { - Float oldValue = (Float) evt.getOldValue(); - Float newValue = (Float) evt.getNewValue(); - Float weightToAdd; + Float oldValue = (Float) evt.getOldValue(); + Float newValue = (Float) evt.getNewValue(); + Float weightToAdd; - if (oldValue == null) { - weightToAdd = newValue; + if (oldValue == null) { + weightToAdd = newValue; - } else if (newValue == null) { - weightToAdd = -oldValue; + } else if (newValue == null) { + weightToAdd = -oldValue; - } else { - weightToAdd = newValue - oldValue; - } + } else { + weightToAdd = newValue - oldValue; + } - if (weightToAdd != null) { - updateFrequencyRowsWeights(row.getSize(), weightToAdd); - } - } + if (weightToAdd != null) { + updateFrequencyRowsWeights(row.getSize(), weightToAdd); + } + } + break; - if (row.withSize() - && (IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS.equals(propertyName) - || IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS.equals(propertyName))) { + case IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS: + case IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS: + if (row.withSize()) { + CaracteristicMap oldValue = (CaracteristicMap) evt.getOldValue(); + CaracteristicMap newValue = (CaracteristicMap) evt.getNewValue(); - CaracteristicMap oldValue = (CaracteristicMap) evt.getOldValue(); - CaracteristicMap newValue = (CaracteristicMap) evt.getNewValue(); + if (log.isInfoEnabled()) { + log.info("caracteristics changed"); + } - if (log.isInfoEnabled()) { - 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 (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())); + } + } - 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 (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())); + CaracteristicQualitativeValue oldGender = (CaracteristicQualitativeValue) oldValue.get(sexCaracteristic); + CaracteristicQualitativeValue newGender = (CaracteristicQualitativeValue) newValue.get(sexCaracteristic); + if (!Objects.equals(oldGender, newGender)) { + individualObservationUICache.decrementsObservationNb(oldGender, maturity, row.getSize()); + individualObservationUICache.incrementsObservationNb(newGender, maturity, row.getSize(), Optional.ofNullable(row.getSamplingCode())); + } } - } + break; - CaracteristicQualitativeValue oldGender = (CaracteristicQualitativeValue) oldValue.get(sexCaracteristic); - CaracteristicQualitativeValue newGender = (CaracteristicQualitativeValue) newValue.get(sexCaracteristic); - if (!Objects.equals(oldGender, newGender)) { - individualObservationUICache.decrementsObservationNb(oldGender, maturity, row.getSize()); - individualObservationUICache.incrementsObservationNb(newGender, maturity, row.getSize(), Optional.ofNullable(row.getSamplingCode())); - } - - } + case IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE: + if (row.withSize()) { - if (IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE.equals(propertyName) && row.withSize()) { - String oldValue = (String) evt.getOldValue(); - String newValue = (String) evt.getNewValue(); - - if (StringUtils.isNotBlank(oldValue)) { - individualObservationUICache.decrementsSamplingNb(gender, maturity, row.getSize(), oldValue); - } - if (StringUtils.isNotBlank(newValue)) { - individualObservationUICache.incrementsSamplingNb(gender, maturity, row.getSize(), newValue); - } - } + String oldValue = (String) evt.getOldValue(); + String newValue = (String) evt.getNewValue(); - // if the row's valid state changes, then remove or readd it to the frequencies - if (!getModel().isRowComputationInProgress() - && IndividualObservationBatchRowModel.PROPERTY_VALID.equals(propertyName)) { + if (StringUtils.isNotBlank(oldValue)) { + individualObservationUICache.decrementsSamplingNb(gender, maturity, row.getSize(), oldValue); + } + if (StringUtils.isNotBlank(newValue)) { + individualObservationUICache.incrementsSamplingNb(gender, maturity, row.getSize(), newValue); + } + } + break; - boolean oldValue = (boolean) evt.getOldValue(); - boolean newValue = (boolean) evt.getNewValue(); + case IndividualObservationBatchRowModel.PROPERTY_VALID: + // if the row's valid state changes, then remove or readd it to the frequencies + if (!getModel().isRowComputationInProgress()) { + boolean oldValue = (boolean) evt.getOldValue(); + boolean newValue = (boolean) evt.getNewValue(); - if (oldValue && getModel().mustCopyIndividualObservationSize()) { - updateFrequencyRowsNumbers(row.getSize(), null); - } - if (newValue) { - if (getModel().mustCopyIndividualObservationSize()) { - updateFrequencyRowsNumbers(null, row.getSize()); - } - if (getModel().mustCopyIndividualObservationWeight()) { - updateFrequencyRowsWeights(row.getSize(), row.getWeight()); + if (oldValue && getModel().mustCopyIndividualObservationSize()) { + updateFrequencyRowsNumbers(row.getSize(), null); + } + if (newValue) { + if (getModel().mustCopyIndividualObservationSize()) { + updateFrequencyRowsNumbers(null, row.getSize()); + } + if (getModel().mustCopyIndividualObservationWeight()) { + updateFrequencyRowsWeights(row.getSize(), row.getWeight()); + } + } } - } + break; } getModel().recomputeIndividualObservationRowValidState(row); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm