This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 342d5b93905dc1320497a193a1bfe2a2aa508e48 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 22 18:17:53 2016 +0200 Bien recalculer le cache des échantillons lors d'un import multi-poste --- .../frequency/IndividualObservationBatchTableHandler.java | 4 ++-- .../species/frequency/IndividualObservationUICache.java | 14 ++++++++++---- .../species/frequency/SpeciesFrequencyUIHandler.java | 6 +++--- .../actions/ImportMultiPostSpeciesSupportAction.java | 9 +++++++-- .../frequency/actions/ResetSpeciesFrequencyAction.java | 3 +-- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java index 293b87e..cd2947f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableHandler.java @@ -571,7 +571,7 @@ public class IndividualObservationBatchTableHandler implements Closeable { } - public void editBatch(SpeciesBatchRowModel speciesBatch, List<IndividualObservationBatchRowModel> individualObservationRows) { + public void editBatch(SpeciesBatchRowModel speciesBatch, List<IndividualObservationBatchRowModel> individualObservationRows, boolean addToCache) { CaracteristicMap sampleCategoryValues = new CaracteristicMap(); Iterator<SampleCategory<?>> iterator = speciesBatch.iterator(); @@ -589,7 +589,7 @@ public class IndividualObservationBatchTableHandler implements Closeable { } model2.recomputeRowsValidateState(); - individualObservationUICache.init(speciesBatch.getSpecies(), model2.getRows()); + individualObservationUICache.init(speciesBatch.getSpecies(), model2.getRows(), addToCache); individualObservationTable.packAll(); 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 5652ecf..e71827f 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 @@ -102,7 +102,7 @@ public class IndividualObservationUICache implements Closeable { return useCruiseSamplingCache; } - public void init(Species species, List<IndividualObservationBatchRowModel> individualObservationRows) { + public void init(Species species, List<IndividualObservationBatchRowModel> individualObservationRows, boolean addToCache) { Objects.requireNonNull(species); @@ -121,9 +121,15 @@ public class IndividualObservationUICache implements Closeable { this.samplingCodesAvailable.clear(); this.samplingCodesNotAvailable.clear(); - individualObservationRows.stream() - .filter(individualObservationRow -> individualObservationRow.getSamplingCode() != null) - .forEach(individualObservationRow -> addSamplingCodeNotAvailable(individualObservationRow.getSamplingCode())); + if (addToCache) { + + addIndividualObservations(individualObservationRows); + + } else { + individualObservationRows.stream() + .filter(individualObservationRow -> individualObservationRow.getSamplingCode() != null) + .forEach(individualObservationRow -> addSamplingCodeNotAvailable(individualObservationRow.getSamplingCode())); + } } public boolean isFishingOperationWithZone() { 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 1a9f751..44cbcc8 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 @@ -663,7 +663,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // init maturity caracteristic individualObservationBatchTableHandler.initMaturityCaracteristic(speciesProtocol); - loadFrequenciesAndObservations(frequency, individualObservations); + loadFrequenciesAndObservations(frequency, individualObservations, false); samplingNotificationZoneHandler.editBatch(speciesBatch); @@ -1192,7 +1192,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci ui.getDeleteSampleCodeMenu().setEnabled(sampleCodeMenusEnabled); } - public void loadFrequenciesAndObservations(List<SpeciesFrequencyRowModel> frequency, List<IndividualObservationBatchRowModel> individualObservations) { + public void loadFrequenciesAndObservations(List<SpeciesFrequencyRowModel> frequency, List<IndividualObservationBatchRowModel> individualObservations, boolean addToCache) { SpeciesFrequencyUIModel model = getModel(); SpeciesBatchRowModel speciesBatch = model.getBatch(); @@ -1267,7 +1267,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci model.setRows(frequencyRows); - individualObservationBatchTableHandler.editBatch(speciesBatch, individualObservationRows); + individualObservationBatchTableHandler.editBatch(speciesBatch, individualObservationRows, addToCache); // let's change the copy mode (mark it in init mode to avoid user change confirmation and some recompuations) model.setCopyIndividualObservationMode(null); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java index a9a9c37..645e26a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ImportMultiPostSpeciesSupportAction.java @@ -139,8 +139,13 @@ public abstract class ImportMultiPostSpeciesSupportAction extends LongActionSupp getDataContext().getDefaultIndividualObservationCaracteristics(), individualObservations); - //FIXME Faire un «reset» avant pour l'algorithme de prélèvement - getHandler().loadFrequenciesAndObservations(frequencyRows, individualObservationRows); + model.clear(); + + // remove all individual observations + List<IndividualObservationBatchRowModel> rows = model.getIndividualObservationModel().getRows(); + handler.removeIndividualObservations(rows); + + getHandler().loadFrequenciesAndObservations(frequencyRows, individualObservationRows, true); if (totalWeight != null) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ResetSpeciesFrequencyAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ResetSpeciesFrequencyAction.java index 3bdc75b..b74ca71 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ResetSpeciesFrequencyAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/ResetSpeciesFrequencyAction.java @@ -32,7 +32,6 @@ import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; import javax.swing.JOptionPane; -import java.util.ArrayList; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -93,7 +92,7 @@ public class ResetSpeciesFrequencyAction extends LongActionSupport<SpeciesFreque SpeciesFrequencyUIModel model = getModel(); // remove all frequencies - model.setRows(new ArrayList<>()); + model.clear(); // remove all individual observations List<IndividualObservationBatchRowModel> rows = model.getIndividualObservationModel().getRows(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.