branch develop updated (43d2cac -> 42f36c5)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git from 43d2cac Livrable #8238 Merge branch 'feature/8238' into develop new 42f36c5 Dernier ménage avant release, quand on utilises les bonnes APIs tout s'éclaircie au final... 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 42f36c55a64c9139c5dacaf90c38950d9ac817b9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 28 10:18:34 2016 +0200 Dernier ménage avant release, quand on utilises les bonnes APIs tout s'éclaircie au final... Summary of changes: .../IndividualObservationBatchTableHandler.java | 89 ++++--------- .../IndividualObservationBatchTableModel.java | 141 ++++++++++----------- .../IndividualObservationBatchUIModel.java | 21 +-- .../frequency/IndividualObservationUICache.java | 9 +- .../frequency/SpeciesFrequencyTableModel.java | 13 -- .../frequency/SpeciesFrequencyUIHandler.java | 1 + .../species/frequency/SpeciesFrequencyUIModel.java | 9 +- .../actions/CancelEditSpeciesFrequencyAction.java | 15 +-- 8 files changed, 123 insertions(+), 175 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 develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 42f36c55a64c9139c5dacaf90c38950d9ac817b9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 28 10:18:34 2016 +0200 Dernier ménage avant release, quand on utilises les bonnes APIs tout s'éclaircie au final... --- .../IndividualObservationBatchTableHandler.java | 89 ++++--------- .../IndividualObservationBatchTableModel.java | 141 ++++++++++----------- .../IndividualObservationBatchUIModel.java | 21 +-- .../frequency/IndividualObservationUICache.java | 9 +- .../frequency/SpeciesFrequencyTableModel.java | 13 -- .../frequency/SpeciesFrequencyUIHandler.java | 1 + .../species/frequency/SpeciesFrequencyUIModel.java | 9 +- .../actions/CancelEditSpeciesFrequencyAction.java | 15 +-- 8 files changed, 123 insertions(+), 175 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 c533e06..cbcaeb5 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 @@ -60,7 +60,6 @@ import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.decorator.Decorator; import javax.swing.JComboBox; -import javax.swing.event.TableModelEvent; import java.awt.Color; import java.beans.PropertyChangeListener; import java.io.Closeable; @@ -146,20 +145,6 @@ public class IndividualObservationBatchTableHandler implements Closeable { * Pour écouter les changement de caractéristiques sur une ligne. */ private final PropertyChangeListener individualObservationRowCaracteristicsChangedListener; - /** - * Pour installer les listener sur chaque ligne d'observation individuelle. - */ - private final Function<IndividualObservationBatchRowModel, Void> installListenersOnRow = new Function<IndividualObservationBatchRowModel, Void>() { - @Override - public Void apply(IndividualObservationBatchRowModel row) { - row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SIZE, individualObservationRowSizeChangedListener); - row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_WEIGHT, individualObservationRowWeightChangedListener); - row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE, individualObservationRowSamplingCodeChangedListener); - row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS, individualObservationRowCaracteristicsChangedListener); - row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS, individualObservationRowCaracteristicsChangedListener); - return null; - } - }; /** * Editor for the other caracteristics column. @@ -436,7 +421,31 @@ public class IndividualObservationBatchTableHandler implements Closeable { } // create table model - individualObservationTableModel = new IndividualObservationBatchTableModel(individualObservationWeightUnit, model, columnModel); + + // Pour installer les listener sur chaque ligne d'observation individuelle + Function<IndividualObservationBatchRowModel, Void> installListenersOnRow = row -> { + row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SIZE, individualObservationRowSizeChangedListener); + row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_WEIGHT, individualObservationRowWeightChangedListener); + row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE, individualObservationRowSamplingCodeChangedListener); + row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS, individualObservationRowCaracteristicsChangedListener); + row.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS, individualObservationRowCaracteristicsChangedListener); + return null; + }; + + // Pour désinstaller les listener sur chaque ligne d'observation individuelle. + Function<IndividualObservationBatchRowModel, Void> uninstallListenersOnRow = row -> { + row.removePropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SIZE, individualObservationRowSizeChangedListener); + row.removePropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_WEIGHT, individualObservationRowWeightChangedListener); + row.removePropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE, individualObservationRowSamplingCodeChangedListener); + row.removePropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS, individualObservationRowCaracteristicsChangedListener); + row.removePropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS, individualObservationRowCaracteristicsChangedListener); + return null; + }; + individualObservationTableModel = new IndividualObservationBatchTableModel(individualObservationWeightUnit, + model, + columnModel, + installListenersOnRow, + uninstallListenersOnRow); individualObservationsModel.setIndividualObservationTableModel(individualObservationTableModel); individualObservationTable.setModel(individualObservationTableModel); @@ -464,34 +473,6 @@ public class IndividualObservationBatchTableHandler implements Closeable { // always scroll to selected row SwingUtil.scrollToTableSelection(individualObservationTable); - individualObservationTableModel.addTableModelListener(e -> { - - int firstRow = e.getFirstRow(); - int lastRow = e.getLastRow(); - - switch (e.getType()) { - - case TableModelEvent.INSERT: - for (int i = firstRow; i <= lastRow; i++) { - IndividualObservationBatchRowModel newRow = individualObservationTableModel.getEntry(i); - installListenersOnRow.apply(newRow); - - if (model.mustCopyIndividualObservationSize() && newRow.withSize()) { - - frequencyTableModel.incrementFrequencyRowsNumbers(newRow.getSize()); - - } - - individualObservationsModel.recomputeRowValidState(newRow); - } - break; - - } - - model.recomputeCanEditLengthStep(); - - }); - individualObservationsModel.addPropertyChangeListener(IndividualObservationBatchUIModel.PROPERTY_ROWS, evt -> individualObservationTableModel.setRows((List<IndividualObservationBatchRowModel>) evt.getNewValue())); // Pour mettre à jour les mensurations suite au changement du mode de recopie des observations individuelles @@ -532,8 +513,6 @@ public class IndividualObservationBatchTableHandler implements Closeable { // Recalcul des mensurations à partir des observations individuelles frequencyTableModel.reloadRowsFromIndividualObservations(); - individualObservationTableModel.fireTableDataChanged(); - }); model.addPropertyChangeListener(SpeciesFrequencyUIModel.PROPERTY_LENGTH_STEP_CARACTERISTIC, evt -> { @@ -560,27 +539,14 @@ public class IndividualObservationBatchTableHandler implements Closeable { SamplingCodePrefix samplingCodePrefix = new SamplingCodePrefix(uiHandler.getConfig().getSamplingCodePrefix(), speciesDecorator.toString(species)); individualObservationsModel.setSamplingCodePrefix(samplingCodePrefix); - return individualObservationTableModel.loadRows(individualObservations, installListenersOnRow); + return individualObservationTableModel.loadRows(individualObservations); } public void loadSpeciesBatch(SpeciesBatchRowModel speciesBatch, List<IndividualObservationBatchRowModel> individualObservationRows, boolean addToCache) { -// CaracteristicMap sampleCategoryValues = new CaracteristicMap(); -// Iterator<SampleCategory<?>> iterator = speciesBatch.iterator(); -// iterator.forEachRemaining(sampleCategory -> { -// Caracteristic caracteristic = sampleCategory.getCategoryDef().getCaracteristic(); -// sampleCategoryValues.put(caracteristic, sampleCategory.getCategoryValue()); -// }); -// -// individualObservationTableModel.setDefaultCaracteristicValues(sampleCategoryValues); -// individualObservationsModel.setNotEditableCaracteristic(sampleCategoryValues.keySet()); - individualObservationsModel.setRows(individualObservationRows); - if (individualObservationRows.isEmpty()) { - individualObservationTableModel.addNewRow(); - } - individualObservationsModel.recomputeRowsValidateState(); +// individualObservationsModel.recomputeRowsValidateState(); model.getIndividualObservationUICache().init(speciesBatch.getSpecies(), individualObservationsModel.getRows(), addToCache); model.getSamplingCodeUICache().init(speciesBatch.getSpecies(), individualObservationsModel.getRows(), addToCache); @@ -664,6 +630,7 @@ public class IndividualObservationBatchTableHandler implements Closeable { iterator.forEachRemaining(sampleCategory -> { Caracteristic caracteristic = sampleCategory.getCategoryDef().getCaracteristic(); defaultCaracteristicMap.replace(caracteristic, sampleCategory.getCategoryValue()); + sampleCategoryValues.put(caracteristic, sampleCategory.getCategoryValue()); }); individualObservationTableModel.setDefaultCaracteristics(defaultCaracteristicMap); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableModel.java index 19df4da..453e94a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchTableModel.java @@ -31,13 +31,11 @@ import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.table.CaracteristicColumnIdentifier; import org.apache.commons.collections4.CollectionUtils; import org.jdesktop.swingx.table.TableColumnModelExt; -import org.nuiton.jaxx.application.bean.JavaBeanObjectUtil; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import java.io.Serializable; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.Set; @@ -104,14 +102,20 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab protected Caracteristic lengthstepCaracteristic; - protected final SpeciesFrequencyUIModel uiModel; - protected final IndividualObservationBatchUIModel model; + private final SpeciesFrequencyUIModel uiModel; + private final Function<IndividualObservationBatchRowModel, Void> installListenersOnRow; + private final Function<IndividualObservationBatchRowModel, Void> uninstallListenersOnRow; + private final IndividualObservationBatchUIModel model; public IndividualObservationBatchTableModel(WeightUnit weightUnit, SpeciesFrequencyUIModel uiModel, - TableColumnModelExt columnModel) { - super(columnModel, true, false); + TableColumnModelExt columnModel, + Function<IndividualObservationBatchRowModel, Void> installListenersOnRow, + Function<IndividualObservationBatchRowModel, Void> uninstallListenersOnRow) { + super(columnModel, true, true); this.uiModel = uiModel; + this.installListenersOnRow = installListenersOnRow; + this.uninstallListenersOnRow = uninstallListenersOnRow; this.model = uiModel.getIndividualObservationModel(); this.weightUnit = weightUnit; this.defaultCaracteristicsMap = new CaracteristicMap(); @@ -160,19 +164,6 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } } - //FIXME A quoi ça sert ? (j'ai déplacé le samplingCodePrefix ailleurs cela doit peut-être éviter de faire cela...) - // quand l'utilisateur change le prefix dans la conf, si la ligne a deja un code prélèvement, - // le prefix reste le même, même si l'utilisateur supprime le code et en regénère un - // il faut pousser le nouveau prefix si l'utilisateur supprime le code -// result.addPropertyChangeListener(IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE, evt -> { -// if (result.withSamplingCode() && result.withSamplingCodePrefix()) { -// result.setSamplingCodePrefix(new SamplingCodePrefix(result.getSamplingCode())); -// -// } else if (!result.withSamplingCode()) { -// result.setSamplingCodePrefix(samplingCodePrefix); -// } -// }); - return result; } @@ -212,15 +203,7 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab return editable; } - public void recomputeRankOrders(int firstRow) { - - for (int i = firstRow; i < getRowCount(); i++) { - getRows().get(i).setRankOrder(i + 1); - } - - } - - public List<IndividualObservationBatchRowModel> loadRows(List<IndividualObservationBatchRowModel> individualObservations, Function<IndividualObservationBatchRowModel, Void> individualObservationRowChangedListener) { + public List<IndividualObservationBatchRowModel> loadRows(List<IndividualObservationBatchRowModel> individualObservations) { List<IndividualObservationBatchRowModel> obsRows = new ArrayList<>(); @@ -251,7 +234,6 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab obsRows.add(newRow); - individualObservationRowChangedListener.apply(newRow); } } @@ -260,6 +242,59 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } + @Override + protected void onRowAdded(int rowIndex, IndividualObservationBatchRowModel row) { + + attachListeners(row); + + uiModel.recomputeCanEditLengthStep(); + uiModel.setModify(true); + + } + + @Override + protected void onRowUpdated(int rowIndex, IndividualObservationBatchRowModel row) { + + uiModel.recomputeCanEditLengthStep(); + uiModel.setModify(true); + model.recomputeRowValidState(row); + + } + + @Override + protected void onRowRemoved(int rowIndex, IndividualObservationBatchRowModel row) { + + dettachListeners(row); + + uiModel.recomputeCanEditLengthStep(); + uiModel.recomputeRowsValidateState(); + + } + + @Override + protected void onBeforeRowsChanged(List<IndividualObservationBatchRowModel> oldRows) { + + if (oldRows != null) { + oldRows.forEach(this::dettachListeners); + } + + } + + @Override + protected void onRowsChanged(List<IndividualObservationBatchRowModel> newRows) { + + int rankOrder = 1; + for (IndividualObservationBatchRowModel row : newRows) { + attachListeners(row); + row.setRankOrder(rankOrder++); + } + newRows.forEach(this::attachListeners); + + uiModel.recomputeCanEditLengthStep(); + uiModel.recomputeRowsValidateState(); + + } + public IndividualObservationBatchRowModel addRafaleRow(Float step) { IndividualObservationBatchRowModel row = getEmptyRow(); @@ -298,49 +333,13 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } - public void removeRows(Collection<IndividualObservationBatchRowModel> rowsToDelete) { - - int minSelection = Integer.MAX_VALUE; - int maxSelection = -1; - - for (IndividualObservationBatchRowModel row : rowsToDelete) { - - JavaBeanObjectUtil.removeAllPropertyChangeListeners(row); - int rowIndex = rows.indexOf(row); - if (minSelection > rowIndex) { - minSelection = rowIndex; - } - if (maxSelection < rowIndex) { - maxSelection = rowIndex; - } - - model.removeRowInError(row); - } - - rows.removeAll(rowsToDelete); - model.removeRowsInError(rowsToDelete); - - fireTableRowsDeleted(minSelection, maxSelection); - - if (rows.isEmpty()) { - addNewRow(); - - } else { - recomputeRankOrders(minSelection); - } - + private void dettachListeners(IndividualObservationBatchRowModel result) { + uninstallListenersOnRow.apply(result); } - public void clear() { - - if (!rows.isEmpty()) { - - int rowCount = rows.size(); - rows.clear(); - fireTableRowsDeleted(0, rowCount - 1); - addNewRow(); - - } - + private void attachListeners(IndividualObservationBatchRowModel result) { + dettachListeners(result); // prevent leaks! + installListenersOnRow.apply(result); } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchUIModel.java index e2b0db1..fbf3c99 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationBatchUIModel.java @@ -289,6 +289,8 @@ public class IndividualObservationBatchUIModel extends AbstractTuttiTableUIModel getRows().forEach(row -> row.setCopyIndividualObservationMode(newCopyMode)); recomputeRowsValidateState(); + individualObservationTableModel.fireTableDataChanged(); + } public void removeIndividualObservations(Collection<IndividualObservationBatchRowModel> rows) { @@ -297,11 +299,10 @@ public class IndividualObservationBatchUIModel extends AbstractTuttiTableUIModel parentModel.getIndividualObservationUICache().removeIndividualObservations(rows); parentModel.getSamplingCodeUICache().removeIndividualObservations(rows); - // on supprime les observations individuelles du modèle - individualObservationTableModel.removeRows(rows); + List<IndividualObservationBatchRowModel> newRows = new ArrayList<>(getRows()); + newRows.removeAll(rows); - recomputeCanEditLengthStep(); - recomputeRowsValidateState(); + setRows(newRows); } @@ -311,17 +312,7 @@ public class IndividualObservationBatchUIModel extends AbstractTuttiTableUIModel public void clear() { - // on supprime les observations individuelles des caches - parentModel.getIndividualObservationUICache().removeIndividualObservations(rows); - parentModel.getSamplingCodeUICache().removeIndividualObservations(rows); - - rowsInError.clear(); - individualObservationTableModel.clear(); - - firePropertyChange(PROPERTY_ROWS_IN_ERROR, null, rowsInError); - - recomputeCanEditLengthStep(); -// recomputeRowsValidateState(); + removeIndividualObservations(rows); } } 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 4f4964a..32531a0 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 @@ -158,7 +158,14 @@ public class IndividualObservationUICache implements Closeable { .forEach(row -> { IndividualObservationSamplingCacheRequest samplingCacheRequest = uiModel.toSamplingCacheRequest(row); - removeIndividualObservation(samplingCacheRequest); + + try { + removeIndividualObservation(samplingCacheRequest); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not remove individual observation", e); + } + } }); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java index f241916..0832738 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java @@ -694,17 +694,4 @@ public class SpeciesFrequencyTableModel extends AbstractApplicationTableModel<Sp } - public void clear() { - - if (!rows.isEmpty()) { - - int rowCount = rows.size(); - rows.clear(); - fireTableRowsDeleted(0, rowCount - 1); - addNewRow(); - - } - - - } } \ No newline at end of file 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 4b07cbc..dab5849 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 @@ -1222,6 +1222,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci log.info("lengthStepCaracteristic: " + lengthStepCaracteristic); } +// model.setLengthStepCaracteristic(null); model.setLengthStepCaracteristic(lengthStepCaracteristic); FrequencyConfigurationMode configurationMode = model.guessFrequencyConfigurationMode(); 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 c43ee34..aedbb88 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 @@ -432,7 +432,8 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa step = caracteristic.getPrecision(); } if (step == null) { - step = 1f; + // on ne met pas 1 c'est la valeur par défaut + step = 0.1f; } setStep(step); } @@ -879,11 +880,9 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public void clear() { - frequencyTableModel.clear(); - recomputeCanEditLengthStep(); + setRows(new ArrayList<>()); - rowsInError.clear(); - firePropertyChange(PROPERTY_ROWS_IN_ERROR, null, rowsInError); + recomputeCanEditLengthStep(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/CancelEditSpeciesFrequencyAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/CancelEditSpeciesFrequencyAction.java index fd6d821..a326a57 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/CancelEditSpeciesFrequencyAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/actions/CancelEditSpeciesFrequencyAction.java @@ -24,9 +24,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.ac * #L% */ -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.IndividualObservationBatchRowModel; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.IndividualObservationBatchUIModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; @@ -74,14 +72,13 @@ public class CancelEditSpeciesFrequencyAction extends LongActionSupport<SpeciesF SpeciesFrequencyUIModel model = getModel(); - IndividualObservationBatchUIModel individualObservationModel = model.getIndividualObservationModel(); - List<IndividualObservationBatchRowModel> individualObservationRows = individualObservationModel.getRows(); + // remove indivudal observations from cache + List<IndividualObservationBatchRowModel> individualObservations = model.getIndividualObservationModel().getRows(); + model.getIndividualObservationUICache().removeIndividualObservations(individualObservations); - individualObservationModel.removeIndividualObservations(individualObservationRows); - - SpeciesBatchRowModel batch = model.getBatch(); - - model.addIndividualObservationsInCache(batch.getIndividualObservation()); + // push back old individual observations in cache + List<IndividualObservationBatchRowModel> oldIndividualObservations = model.getBatch().getIndividualObservation(); + model.addIndividualObservationsInCache(oldIndividualObservations); // close dialog getHandler().onCloseUI(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm