This is an automated email from the git hooks/post-receive script. New commit to branch feature/8210 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit a2887363752e16c8c432edbef583d9c6fb5624c7 Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 4 12:07:57 2016 +0200 on pousse les caractéristiques non éditables dans le modèle (par exemple le sexe dans le cas d'un lot sexé) pour ne pas considéré cette données comme saisie et permettre l'enregistrement même si des lignes ont des valeurs seulement pour ces caractéristiques (fixes #8210) --- .../frequency/SpeciesFrequencyUIHandler.java | 1 + .../species/frequency/SpeciesFrequencyUIModel.java | 26 +++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) 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 5b9865d..4aa97d8 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 @@ -1900,6 +1900,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci }); obsTableModel.setDefaultCaracteristicValues(sampleCategoryValues); + model.setNotEditableCaracteristic(sampleCategoryValues.keySet()); model.setIndividualObservationRows(obsRows); obsTableModel.setRows(obsRows); 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 eec8c99..d6d7bf5 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 @@ -44,6 +44,7 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -122,6 +123,8 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public static final String PROPERTY_INIT_BATCH_EDITION = "initBatchEdition"; + public static final String PROPERTY_NOT_EDITABLE_CARACTERISTIC = "notEditableCaracteristic"; + private final SpeciesOrBenthosBatchUISupport speciesOrBenthosBatchUISupport; /** @@ -304,6 +307,13 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa */ protected boolean initBatchEdition; + /** + * Caracteristiques non éditables, car caractéristiques de catégorisation du lot (sexe, maturité, etc) + * + * @since 4.5 + */ + protected Collection<Caracteristic> notEditableCaracteristic; + protected final PropertyChangeListener rowInErrorChangedListener = new PropertyChangeListener() { @Override @@ -838,7 +848,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa if (individualObservationRows != null) { for (IndividualObservationBatchRowModel row : individualObservationRows) { - if (row.isEmpty()) { + if (row.isEmpty(notEditableCaracteristic)) { // la ligne est vide continue; } @@ -940,7 +950,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa public boolean isNonEmptyIndividualObservationRowsInError() { return individualObservationRowsInError != null - && individualObservationRowsInError.stream().anyMatch(row -> !row.isEmpty()); + && individualObservationRowsInError.stream().anyMatch(row -> !row.isEmpty(notEditableCaracteristic)); } public void setNonEmptyIndividualObservationRowsInError(boolean oldNonEmptyIndividualObservationInError) { @@ -956,7 +966,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa } public boolean isNonEmptyIndividualObservationRow() { - return individualObservationRows.stream().anyMatch(row -> !row.isEmpty(defaultCaracteristic)); + return individualObservationRows.stream().anyMatch(row -> !row.isEmpty(notEditableCaracteristic)); } public void recomputeRowsValidateState() { @@ -1005,6 +1015,16 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa this.rowComputationInProgress = rowComputationInProgress; } + public Collection<Caracteristic> getNotEditableCaracteristic() { + return notEditableCaracteristic; + } + + public void setNotEditableCaracteristic(Collection<Caracteristic> notEditableCaracteristic) { + Object oldValue = getNotEditableCaracteristic(); + this.notEditableCaracteristic = notEditableCaracteristic; + firePropertyChange(PROPERTY_NOT_EDITABLE_CARACTERISTIC, oldValue, notEditableCaracteristic); + } + protected final void recomputeRowValidState(SpeciesFrequencyRowModel row) { // recompute row valid state -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.