branch feature/8203 updated (c1877c6 -> 6d07c54)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git omits c1877c6 - flag pour ne pas effacer le message de prélèvement en cas d'ajout en rafale - on n'efface pas le résumé des prelevements quand on modifie les lignes (refs #8203) omits 235af28 Merge branch 'feature/8203' of gitlab.nuiton.org:codelutin/tutti into feature/8203 omits 36f362f correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) omits 7cec81f on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) omits 2f55a8d correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) omits 30f4e68 on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) adds 796926f ajout du nombre d'observations dans l'export + on n'exporte pas les lignes sans obs ni prelevements (refs #8157) adds 4d9cc98 Improve code adds 3ac965d Livrable #8157 Merge branch 'feature/8157-2' into develop new fb4c85c on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) new b95dd89 correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) new 5ca85a8 on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) new dc42850 correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) new fd89346 - flag pour ne pas effacer le message de prélèvement en cas d'ajout en rafale - on n'efface pas le résumé des prelevements quand on modifie les lignes (refs #8203) new 6d07c54 Fix merge 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 (c1877c6) \ N -- N -- N refs/heads/feature/8203 (6d07c54) 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 6 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 6d07c54881f83c3be96656c65cb11836fe264378 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 6 16:03:52 2016 +0200 Fix merge commit fd893465cc58dbf0ab0c422c98d303de2f6e7d47 Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 14:53:30 2016 +0200 - flag pour ne pas effacer le message de prélèvement en cas d'ajout en rafale - on n'efface pas le résumé des prelevements quand on modifie les lignes (refs #8203) commit dc42850a104d5337050f1c3a12538c0a6e88c6cc Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:41:01 2016 +0200 correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) commit 5ca85a8dbda01a5ceb9b202e1c8aea593e8ea69f Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:34:34 2016 +0200 on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) commit b95dd89bb873809e14687013cb278f7e37f310a5 Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:41:01 2016 +0200 correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) commit fb4c85c96e4e35624f93dfa0f991d87e5360705c Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:34:34 2016 +0200 on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) Summary of changes: .../service/export/cps/SamplingNumberRowModel.java | 1 + .../tutti/service/sampling/CacheExtractedKey.java | 10 ++++++ .../service/sampling/CruiseSamplingCache.java | 8 ++--- .../sampling/CruiseSamplingInternalCache.java | 42 ++++++++++++---------- .../resources/i18n/tutti-service_en_GB.properties | 1 + .../resources/i18n/tutti-service_fr_FR.properties | 1 + 6 files changed, 41 insertions(+), 22 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/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit fb4c85c96e4e35624f93dfa0f991d87e5360705c Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:34:34 2016 +0200 on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) --- .../service/sampling/CruiseSamplingCache.java | 58 +++++++++++- .../tutti/service/sampling/SamplingListener.java | 2 +- .../frequency/IndividualObservationUICache.java | 103 ++++++++++++--------- .../frequency/SpeciesFrequencyUIHandler.java | 9 ++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 2 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 4 +- 6 files changed, 132 insertions(+), 46 deletions(-) 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 6477871..7ba051a 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 @@ -647,6 +647,62 @@ public class CruiseSamplingCache implements Closeable { } + public Optional<SamplingEvent> getEventForSummary(FishingOperation fishingOperation, + Species species, Boolean maturity, + CaracteristicQualitativeValue gender, + int lengthStep) { + + Objects.requireNonNull(fishingOperation); + Objects.requireNonNull(species); + + Optional < CalcifiedPiecesSamplingDefinition > cpsDefinitionOpt = getCalcifiedPiecesSamplingDefinition(species, maturity, lengthStep); + + Optional<SamplingEvent> result; + if (cpsDefinitionOpt.isPresent()) { + + CalcifiedPiecesSamplingDefinition cpsDefinition = cpsDefinitionOpt.get(); + + if (log.isInfoEnabled()) { + log.info("Found matching sampling definition: " + cpsDefinition); + } + + if (!cpsDefinition.isSex()) { + gender = null; + } + String samplingKey = CruiseSamplingInternalCache.createSamplingKey(species, gender, maturity, lengthStep); + + int totalValue = totalCruiseCache.incrementObservationNb(samplingKey); + int totalSamplingNb = totalCruiseCache.getSamplingNb(samplingKey); + + int zoneValue = 0; + int zoneSamplingNb = 0; + + Optional<Zone> optionalZone = tryFindZone(fishingOperation); + if (optionalZone.isPresent()) { + String zoneKey = CruiseSamplingInternalCache.addPrefixKey(optionalZone.get().getId(), samplingKey); + zoneValue = zoneCache.incrementObservationNb(zoneKey); + zoneSamplingNb = zoneCache.getSamplingNb(zoneKey); + } + + String operationKey = CruiseSamplingInternalCache.addPrefixKey(fishingOperation.getIdAsInt(), samplingKey); + + int operationValue = operationCache.incrementObservationNb(operationKey); + int operationSamplingNb = operationCache.getSamplingNb(operationKey); + + if (log.isInfoEnabled()) { + log.info("add Individual Observation " + samplingKey + " => op " + operationValue + " / zone " + zoneValue + " / cruise " + totalValue); + } + + SamplingEvent event = new SamplingEvent(this, lengthStep, gender, maturity, cpsDefinition, optionalZone, totalSamplingNb, zoneSamplingNb, operationSamplingNb); + result = Optional.of(event); + + } else { + result = Optional.empty(); + } + + return result; + } + public Optional<Zone> tryFindZone(FishingOperation operation) { Optional<Zone> result; if (operation.getSubStrata() != null) { @@ -694,7 +750,7 @@ public class CruiseSamplingCache implements Closeable { if (samplingListeners.length > 0) { for (SamplingListener listener : samplingListeners) { - listener.resumeUpdated(event); + listener.summaryUpdated(event); } } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java index 6aa37e4..f120f10 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java @@ -34,6 +34,6 @@ public interface SamplingListener extends EventListener { void samplingNeeded(SamplingEvent event); - void resumeUpdated(SamplingEvent event); + void summaryUpdated(SamplingEvent event); } 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 7358b26..218cb9e 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 @@ -162,50 +162,10 @@ public class IndividualObservationUICache implements Closeable { } @Override - public void resumeUpdated(SamplingEvent event) { - - CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); - if (log.isInfoEnabled()) { - log.info("samplingNeeded for " + cpsDef); - } - - int nbForOperation = event.getNbSamplingForOperation(); - int nbForZone = event.getNbSamplingForZone(); - int nbForCruise = event.getNbSamplingForCruise(); - - String nbForOperationLabel = getLabelForSamplingNumber(nbForOperation, cpsDef.getOperationLimitation()); - String nbForZoneLabel = getLabelForSamplingNumber(nbForZone, cpsDef.getZoneLimitation()); - String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); - - Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); - String key = speciesDecorator.toString(species) - + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) - + " " + uiModel.getLengthStepCaracteristicUnit(); - if (event.getGender() != null) { - key += " " + event.getGender().getDescription(); - } - if (event.getMaturity() != null) { - if (event.getMaturity()) { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); - } else { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); - } - } - String resume; - if (event.getZone().isPresent()) { - Decorator<Zone> zoneDecorator = ui.getHandler().getDecorator(Zone.class, null); - String zone = zoneDecorator.toString(event.getZone().get()); - resume = t("tutti.editSpeciesFrequencies.samplingNeeded.resume", key, nbForOperationLabel, zone, nbForZoneLabel, nbForCruiseLabel); - } else { - resume = t("tutti.editSpeciesFrequencies.samplingNeeded.resume.noZone", key, nbForOperationLabel, nbForZoneLabel, nbForCruiseLabel); - } - ui.getSamplingResumeLabel().setText(resume); + public void summaryUpdated(SamplingEvent event) { + displaySummary(event); } - String getLabelForSamplingNumber(int value, Integer max) { - Decorator<Integer> valueDecorator = ui.getHandler().getDecorator(Integer.class, DecoratorService.NULL_INFINITE); - return valueDecorator.toString(value) + "(" + valueDecorator.toString(max) + ")"; - } }; } @@ -495,5 +455,64 @@ public class IndividualObservationUICache implements Closeable { } + public void updateSelectedRow(IndividualObservationBatchRowModel selectedRow) { + + if (samplingCache.isPresent() && selectedRow.withSize()) { + + Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), selectedRow.getMaturityState()); + int lengthstep = uiModel.getLengthStepInMm(selectedRow.getSize()); + + Optional<SamplingEvent> event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(sexCaracteristic), lengthstep); + + if (event.isPresent()) { + displaySummary(event.get()); + } + } + } + + protected void displaySummary(SamplingEvent event) { + + CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); + if (log.isInfoEnabled()) { + log.info("samplingNeeded for " + cpsDef); + } + + int nbForOperation = event.getNbSamplingForOperation(); + int nbForZone = event.getNbSamplingForZone(); + int nbForCruise = event.getNbSamplingForCruise(); + + String nbForOperationLabel = getLabelForSamplingNumber(nbForOperation, cpsDef.getOperationLimitation()); + String nbForZoneLabel = getLabelForSamplingNumber(nbForZone, cpsDef.getZoneLimitation()); + String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); + + Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); + String key = speciesDecorator.toString(species) + + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) + + " " + uiModel.getLengthStepCaracteristicUnit(); + if (event.getGender() != null) { + key += " " + event.getGender().getDescription(); + } + if (event.getMaturity() != null) { + if (event.getMaturity()) { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); + } else { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); + } + } + String summary; + if (event.getZone().isPresent()) { + Decorator<Zone> zoneDecorator = ui.getHandler().getDecorator(Zone.class, null); + String zone = zoneDecorator.toString(event.getZone().get()); + summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary", key, nbForOperationLabel, zone, nbForZoneLabel, nbForCruiseLabel); + } else { + summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone", key, nbForOperationLabel, nbForZoneLabel, nbForCruiseLabel); + } + ui.getSamplingResumeLabel().setText(summary); + } + + protected String getLabelForSamplingNumber(int value, Integer max) { + Decorator<Integer> valueDecorator = ui.getHandler().getDecorator(Integer.class, DecoratorService.NULL_INFINITE); + return "<strong>" + valueDecorator.toString(value) + "</strong> (" + valueDecorator.toString(max) + ")"; + } } 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 b0ef3e4..d34f561 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 @@ -1416,6 +1416,15 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci getModel().recomputeCanEditLengthStep(); }); + + obsTable.getSelectionModel().addListSelectionListener(e -> { + + resetSamplingLabels(); + if (obsTable.getSelectedRowCount() == 1) { + IndividualObservationBatchRowModel selectedRow = getObsTableModel().getRows().get(obsTable.getSelectedRow()); + individualObservationUICache.updateSelectedRow(selectedRow); + } + }); } protected void resetSamplingLabels() { diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 3d5e6fe..f7e654d 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1648,6 +1648,8 @@ tutti.editSpeciesFrequencies.samplingNeeded.mature= tutti.editSpeciesFrequencies.samplingNeeded.max= tutti.editSpeciesFrequencies.samplingNeeded.resume= tutti.editSpeciesFrequencies.samplingNeeded.resume.noZone= +tutti.editSpeciesFrequencies.samplingNeeded.summary= +tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone= tutti.editSpeciesFrequencies.samplingNeeded.warning= tutti.editSpeciesFrequencies.simpleCountingAndFrequencies= tutti.editSpeciesFrequencies.table.header.lengthStep= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 56171e9..a99f983 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1532,8 +1532,8 @@ tutti.editSpeciesFrequencies.logTable.removeRow.confirm.title=Suppression d'une tutti.editSpeciesFrequencies.samplingNeeded.immature=Immature tutti.editSpeciesFrequencies.samplingNeeded.mature=Mature tutti.editSpeciesFrequencies.samplingNeeded.max=max -tutti.editSpeciesFrequencies.samplingNeeded.resume=<html><body><strong>%s</strong> \: Trait \: %s | %s \: %s | Campagne \: %s -tutti.editSpeciesFrequencies.samplingNeeded.resume.noZone=<html><body><strong>%s</strong> \: Trait \: %s | (pas dans une zone) | Campagne \: %s +tutti.editSpeciesFrequencies.samplingNeeded.summary=<html><body><strong>%s</strong> \: Trait \: %s | %s \: %s | Campagne \: %s +tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone=<html><body><strong>%s</strong> \: Trait \: %s | (pas dans une zone) | Campagne \: %s tutti.editSpeciesFrequencies.samplingNeeded.warning=<html><body><strong>Prélevez les pièces calcifiées \!</body></html> tutti.editSpeciesFrequencies.simpleCountingAndFrequencies=Des mensurations ont été saisies dans le tableau. Saisir un simple dénombrement les effacera. tutti.editSpeciesFrequencies.table.header.lengthStep=Classe de taille -- 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/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit b95dd89bb873809e14687013cb278f7e37f310a5 Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:41:01 2016 +0200 correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) --- .../fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java | 6 +++--- .../tutti/service/sampling/CruiseSamplingInternalCache.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) 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 7ba051a..4d9f32c 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 @@ -671,7 +671,7 @@ public class CruiseSamplingCache implements Closeable { } String samplingKey = CruiseSamplingInternalCache.createSamplingKey(species, gender, maturity, lengthStep); - int totalValue = totalCruiseCache.incrementObservationNb(samplingKey); + int totalValue = totalCruiseCache.getObservationNb(samplingKey); int totalSamplingNb = totalCruiseCache.getSamplingNb(samplingKey); int zoneValue = 0; @@ -680,13 +680,13 @@ public class CruiseSamplingCache implements Closeable { Optional<Zone> optionalZone = tryFindZone(fishingOperation); if (optionalZone.isPresent()) { String zoneKey = CruiseSamplingInternalCache.addPrefixKey(optionalZone.get().getId(), samplingKey); - zoneValue = zoneCache.incrementObservationNb(zoneKey); + zoneValue = zoneCache.getObservationNb(zoneKey); zoneSamplingNb = zoneCache.getSamplingNb(zoneKey); } String operationKey = CruiseSamplingInternalCache.addPrefixKey(fishingOperation.getIdAsInt(), samplingKey); - int operationValue = operationCache.incrementObservationNb(operationKey); + int operationValue = operationCache.getObservationNb(operationKey); int operationSamplingNb = operationCache.getSamplingNb(operationKey); if (log.isInfoEnabled()) { 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 a5d87be..5351f78 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 @@ -102,6 +102,16 @@ class CruiseSamplingInternalCache implements Closeable { return result; } + public int getObservationNb(String samplingKey) { + Objects.requireNonNull(samplingKey); + SamplingData value = data.get(samplingKey); + int observationNb = value.getObservationNb(); + if (log.isDebugEnabled()) { + log.debug(samplingKey + " → " + observationNb); + } + return observationNb; + } + public int incrementSamplingNb(String samplingKey) { Objects.requireNonNull(samplingKey); SamplingData value = data.computeIfAbsent(samplingKey, s -> new SamplingData()); -- 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/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 5ca85a8dbda01a5ceb9b202e1c8aea593e8ea69f Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:34:34 2016 +0200 on demande au cache le résumé de prélèvement pour la ligne sélectionnée (s'il n'y a qu'une ligne sélectionnée) (fixes #8203) --- .../fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 4d9f32c..b9a37f3 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 @@ -101,7 +101,7 @@ public class CruiseSamplingCache implements Closeable { /** * L'identifiant de la campagne associée à ce cache. */ - private final int cruiseId; + private final Integer cruiseId; /** * L'identificant du protocol associé à ce cache. */ @@ -671,7 +671,7 @@ public class CruiseSamplingCache implements Closeable { } String samplingKey = CruiseSamplingInternalCache.createSamplingKey(species, gender, maturity, lengthStep); - int totalValue = totalCruiseCache.getObservationNb(samplingKey); + int totalValue = totalCruiseCache.incrementObservationNb(samplingKey); int totalSamplingNb = totalCruiseCache.getSamplingNb(samplingKey); int zoneValue = 0; @@ -680,13 +680,13 @@ public class CruiseSamplingCache implements Closeable { Optional<Zone> optionalZone = tryFindZone(fishingOperation); if (optionalZone.isPresent()) { String zoneKey = CruiseSamplingInternalCache.addPrefixKey(optionalZone.get().getId(), samplingKey); - zoneValue = zoneCache.getObservationNb(zoneKey); + zoneValue = zoneCache.incrementObservationNb(zoneKey); zoneSamplingNb = zoneCache.getSamplingNb(zoneKey); } String operationKey = CruiseSamplingInternalCache.addPrefixKey(fishingOperation.getIdAsInt(), samplingKey); - int operationValue = operationCache.getObservationNb(operationKey); + int operationValue = operationCache.incrementObservationNb(operationKey); int operationSamplingNb = operationCache.getSamplingNb(operationKey); if (log.isInfoEnabled()) { @@ -750,7 +750,7 @@ public class CruiseSamplingCache implements Closeable { if (samplingListeners.length > 0) { for (SamplingListener listener : samplingListeners) { - listener.summaryUpdated(event); + listener.resumeUpdated(event); } } } -- 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/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit dc42850a104d5337050f1c3a12538c0a6e88c6cc Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 11:41:01 2016 +0200 correction (pas d'incrément, on récupère juste le nombre d'observations) (fixes #8203) --- .../java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 b9a37f3..132a019 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 @@ -671,7 +671,7 @@ public class CruiseSamplingCache implements Closeable { } String samplingKey = CruiseSamplingInternalCache.createSamplingKey(species, gender, maturity, lengthStep); - int totalValue = totalCruiseCache.incrementObservationNb(samplingKey); + int totalValue = totalCruiseCache.getObservationNb(samplingKey); int totalSamplingNb = totalCruiseCache.getSamplingNb(samplingKey); int zoneValue = 0; @@ -680,13 +680,13 @@ public class CruiseSamplingCache implements Closeable { Optional<Zone> optionalZone = tryFindZone(fishingOperation); if (optionalZone.isPresent()) { String zoneKey = CruiseSamplingInternalCache.addPrefixKey(optionalZone.get().getId(), samplingKey); - zoneValue = zoneCache.incrementObservationNb(zoneKey); + zoneValue = zoneCache.getObservationNb(zoneKey); zoneSamplingNb = zoneCache.getSamplingNb(zoneKey); } String operationKey = CruiseSamplingInternalCache.addPrefixKey(fishingOperation.getIdAsInt(), samplingKey); - int operationValue = operationCache.incrementObservationNb(operationKey); + int operationValue = operationCache.getObservationNb(operationKey); int operationSamplingNb = operationCache.getSamplingNb(operationKey); if (log.isInfoEnabled()) { -- 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/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit fd893465cc58dbf0ab0c422c98d303de2f6e7d47 Author: Kevin Morin <morin@codelutin.com> Date: Wed Apr 6 14:53:30 2016 +0200 - flag pour ne pas effacer le message de prélèvement en cas d'ajout en rafale - on n'efface pas le résumé des prelevements quand on modifie les lignes (refs #8203) --- .../frequency/IndividualObservationUICache.java | 77 ++++++++++++---------- .../frequency/SpeciesFrequencyUIHandler.java | 11 ++-- .../species/frequency/SpeciesFrequencyUIModel.java | 13 ++++ .../actions/ApplySpeciesFrequencyRafaleAction.java | 8 ++- 4 files changed, 67 insertions(+), 42 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 218cb9e..06b07c0 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 @@ -163,7 +163,7 @@ public class IndividualObservationUICache implements Closeable { @Override public void summaryUpdated(SamplingEvent event) { - displaySummary(event); + displaySummary(Optional.of(event)); } }; @@ -457,56 +457,63 @@ public class IndividualObservationUICache implements Closeable { public void updateSelectedRow(IndividualObservationBatchRowModel selectedRow) { + Optional<SamplingEvent> event; if (samplingCache.isPresent() && selectedRow.withSize()) { Boolean maturity = samplingCache.get().getMaturity(uiModel.getBatch().getSpecies().getReferenceTaxonId(), selectedRow.getMaturityState()); int lengthstep = uiModel.getLengthStepInMm(selectedRow.getSize()); - Optional<SamplingEvent> event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(sexCaracteristic), lengthstep); + event = samplingCache.get().getEventForSummary(fishingOperation, species, maturity, selectedRow.getGender(sexCaracteristic), lengthstep); - if (event.isPresent()) { - displaySummary(event.get()); - } + } else { + event = Optional.empty(); } + displaySummary(event); } - protected void displaySummary(SamplingEvent event) { + protected void displaySummary(Optional<SamplingEvent> optEvent) { - CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); - if (log.isInfoEnabled()) { - log.info("samplingNeeded for " + cpsDef); - } + String summary = null; - int nbForOperation = event.getNbSamplingForOperation(); - int nbForZone = event.getNbSamplingForZone(); - int nbForCruise = event.getNbSamplingForCruise(); + if (optEvent.isPresent()) { + SamplingEvent event = optEvent.get(); - String nbForOperationLabel = getLabelForSamplingNumber(nbForOperation, cpsDef.getOperationLimitation()); - String nbForZoneLabel = getLabelForSamplingNumber(nbForZone, cpsDef.getZoneLimitation()); - String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); + CalcifiedPiecesSamplingDefinition cpsDef = event.getCpsDef(); + if (log.isInfoEnabled()) { + log.info("samplingNeeded for " + cpsDef); + } - Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); - String key = speciesDecorator.toString(species) - + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) - + " " + uiModel.getLengthStepCaracteristicUnit(); - if (event.getGender() != null) { - key += " " + event.getGender().getDescription(); - } - if (event.getMaturity() != null) { - if (event.getMaturity()) { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); + int nbForOperation = event.getNbSamplingForOperation(); + int nbForZone = event.getNbSamplingForZone(); + int nbForCruise = event.getNbSamplingForCruise(); + + String nbForOperationLabel = getLabelForSamplingNumber(nbForOperation, cpsDef.getOperationLimitation()); + String nbForZoneLabel = getLabelForSamplingNumber(nbForZone, cpsDef.getZoneLimitation()); + String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); + + Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); + String key = speciesDecorator.toString(species) + + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) + + " " + uiModel.getLengthStepCaracteristicUnit(); + if (event.getGender() != null) { + key += " " + event.getGender().getDescription(); + } + if (event.getMaturity() != null) { + if (event.getMaturity()) { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.mature"); + } else { + key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); + } + } + if (event.getZone().isPresent()) { + Decorator<Zone> zoneDecorator = ui.getHandler().getDecorator(Zone.class, null); + String zone = zoneDecorator.toString(event.getZone().get()); + summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary", key, nbForOperationLabel, zone, nbForZoneLabel, nbForCruiseLabel); } else { - key += " " + t("tutti.editSpeciesFrequencies.samplingNeeded.immature"); + summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone", key, nbForOperationLabel, nbForZoneLabel, nbForCruiseLabel); } } - String summary; - if (event.getZone().isPresent()) { - Decorator<Zone> zoneDecorator = ui.getHandler().getDecorator(Zone.class, null); - String zone = zoneDecorator.toString(event.getZone().get()); - summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary", key, nbForOperationLabel, zone, nbForZoneLabel, nbForCruiseLabel); - } else { - summary = t("tutti.editSpeciesFrequencies.samplingNeeded.summary.noZone", key, nbForOperationLabel, nbForZoneLabel, nbForCruiseLabel); - } + ui.getSamplingResumeLabel().setText(summary); } 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 d34f561..f382c47 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 @@ -217,8 +217,6 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci @Override public void propertyChange(PropertyChangeEvent evt) { - resetSamplingLabels(); - IndividualObservationBatchRowModel row = (IndividualObservationBatchRowModel) evt.getSource(); String propertyName = evt.getPropertyName(); @@ -819,7 +817,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci frequenciesHistogramPopup.dispose(); averageWeightsHistogramPopup.dispose(); - resetSamplingLabels(); + resetSamplingLabel(); frequencyEditor = null; @@ -1419,7 +1417,9 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci obsTable.getSelectionModel().addListSelectionListener(e -> { - resetSamplingLabels(); + if (!getModel().isInRafaleRowCreation()) { + resetSamplingLabel(); + } if (obsTable.getSelectedRowCount() == 1) { IndividualObservationBatchRowModel selectedRow = getObsTableModel().getRows().get(obsTable.getSelectedRow()); individualObservationUICache.updateSelectedRow(selectedRow); @@ -1427,12 +1427,11 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci }); } - protected void resetSamplingLabels() { + protected void resetSamplingLabel() { if (log.isDebugEnabled()) { log.debug("reset smapling panel"); } ui.getSamplingWarningLabel().setVisible(false); - ui.getSamplingResumeLabel().setText(null); } public void setMaturityCaracteristic(Optional<Caracteristic> maturityCaracteristic) { 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 d6d7bf5..21879e8 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 @@ -308,6 +308,11 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa protected boolean initBatchEdition; /** + * A row is being created in rafale. Do not remove the sampling warning in this state. + */ + protected boolean inRafaleRowCreation; + + /** * Caracteristiques non éditables, car caractéristiques de catégorisation du lot (sexe, maturité, etc) * * @since 4.5 @@ -1015,6 +1020,14 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa this.rowComputationInProgress = rowComputationInProgress; } + public boolean isInRafaleRowCreation() { + return inRafaleRowCreation; + } + + public void setInRafaleRowCreation(boolean inRafaleRowCreation) { + this.inRafaleRowCreation = inRafaleRowCreation; + } + public Collection<Caracteristic> getNotEditableCaracteristic() { return notEditableCaracteristic; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java index d1be369..7d86e40 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ApplySpeciesFrequencyRafaleAction.java @@ -76,6 +76,8 @@ public class ApplySpeciesFrequencyRafaleAction { SpeciesFrequencyUIHandler handler = ui.getHandler(); float aroundLengthStep = model.getLengthStep(step); + model.setInRafaleRowCreation(true); + if (model.isCopyIndividualObservationNothing()) { SpeciesFrequencyTableModel tableModel = handler.getTableModel(); @@ -141,7 +143,10 @@ public class ApplySpeciesFrequencyRafaleAction { newLogRow.setObsRow(obsRow); int rowIndex = obsTableModel.getRowIndex(obsRow); - SwingUtilities.invokeLater(() -> selectRow(ui.getObsTable(), rowIndex)); + SwingUtilities.invokeLater(() -> { + selectRow(ui.getObsTable(), rowIndex); + model.setInRafaleRowCreation(false); + }); } @@ -157,6 +162,7 @@ public class ApplySpeciesFrequencyRafaleAction { } protected void selectRow(JXTable table, int rowIndex) { + table.setRowSelectionInterval(rowIndex, rowIndex); table.scrollRowToVisible(rowIndex); } -- 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/8203 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 6d07c54881f83c3be96656c65cb11836fe264378 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 6 16:03:52 2016 +0200 Fix merge --- .../fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 132a019..e1d5c86 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 @@ -317,7 +317,7 @@ public class CruiseSamplingCache implements Closeable { fireSamplingNeeded(event); } - fireResumeUpdated(event); + fireSummaryUpdated(event); } } @@ -394,7 +394,7 @@ public class CruiseSamplingCache implements Closeable { if (cpsDefinitionOpt.isPresent()) { SamplingEvent event = new SamplingEvent(this, lengthStep, gender, maturity, cpsDefinitionOpt.get(), optionalZone, totalSamplingNb, zoneSamplingNb, operationSamplingNb); - fireResumeUpdated(event); + fireSummaryUpdated(event); } addSamplingCode(species.getReferenceTaxonId(), samplingCode); @@ -595,7 +595,7 @@ public class CruiseSamplingCache implements Closeable { if (cpsDefinitionOpt.isPresent()) { SamplingEvent event = new SamplingEvent(this, lengthStep, gender, maturity, cpsDefinitionOpt.get(), optionalZone, totalSamplingNb, zoneSamplingNb, operationSamplingNb); - fireResumeUpdated(event); + fireSummaryUpdated(event); } removeSamplingCode(species.getReferenceTaxonId(), samplingCode); @@ -744,13 +744,13 @@ public class CruiseSamplingCache implements Closeable { } } - protected void fireResumeUpdated(SamplingEvent event) { + protected void fireSummaryUpdated(SamplingEvent event) { SamplingListener[] samplingListeners = listeners.getListeners(SamplingListener.class); if (samplingListeners.length > 0) { for (SamplingListener listener : samplingListeners) { - listener.resumeUpdated(event); + listener.summaryUpdated(event); } } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm