branch feature/8063 created (now c503ad6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8063 in repository tutti. See http://git.codelutin.com/tutti.git at c503ad6 on pousse les valeurs des catégorisations dans le modèle de table (fixes #8063) This branch includes the following new commits: new 383e94a ajout des valeurs par défaut des caractéristiques dans le modèle de table (refs #8063) new c503ad6 on pousse les valeurs des catégorisations dans le modèle de table (fixes #8063) The 2 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 c503ad66453d8b5935f672254fe5541070454405 Author: Kevin Morin <morin@codelutin.com> Date: Tue Mar 8 16:07:04 2016 +0100 on pousse les valeurs des catégorisations dans le modèle de table (fixes #8063) commit 383e94a8bd470c7070e006cc4b0b94e0bb74cc90 Author: Kevin Morin <morin@codelutin.com> Date: Tue Mar 8 16:06:56 2016 +0100 ajout des valeurs par défaut des caractéristiques dans le modèle de table (refs #8063) -- 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/8063 in repository tutti. See http://git.codelutin.com/tutti.git commit 383e94a8bd470c7070e006cc4b0b94e0bb74cc90 Author: Kevin Morin <morin@codelutin.com> Date: Tue Mar 8 16:06:56 2016 +0100 ajout des valeurs par défaut des caractéristiques dans le modèle de table (refs #8063) --- .../persistence/entities/CaracteristicMap.java | 10 ++++++ .../IndividualObservationBatchRowModel.java | 9 +++--- .../IndividualObservationBatchTableModel.java | 36 ++++++++++++++++++++-- .../util/table/CaracteristicColumnIdentifier.java | 4 +++ 4 files changed, 51 insertions(+), 8 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java index 166b6a1..d0582e9 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.persistence.entities; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import java.io.Serializable; +import java.util.Collection; import java.util.LinkedHashMap; import java.util.Objects; @@ -35,6 +36,7 @@ import java.util.Objects; * @since 0.3 */ public class CaracteristicMap extends LinkedHashMap<Caracteristic, Serializable> { + private static final long serialVersionUID = 1L; public static CaracteristicMap copy(CaracteristicMap map) { @@ -45,6 +47,14 @@ public class CaracteristicMap extends LinkedHashMap<Caracteristic, Serializable> return result; } + public static CaracteristicMap fromCollection(Collection<Caracteristic> caracterstics) { + CaracteristicMap result = new CaracteristicMap(); + if (caracterstics != null) { + caracterstics.forEach(caracteristic -> result.put(caracteristic, null)); + } + return result; + } + public boolean hasNonNullValues() { return values().stream().filter(Objects::nonNull).count() > 0; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java index a375ff4..7d298f6 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java @@ -93,21 +93,20 @@ public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel IndividualObservationBatch.class); public IndividualObservationBatchRowModel(WeightUnit weightUnit, - Collection<Caracteristic> defaultCaracteristicsSet) { + CaracteristicMap defaultCaracteristicMap) { super(fromBeanBinder, toBeanBinder); this.weightUnit = weightUnit; if (getCaracteristics() == null) { setCaracteristics(new CaracteristicMap()); } - for (Caracteristic caracteristic : defaultCaracteristicsSet) { - defaultCaracteristics.put(caracteristic, null); - } + setDefaultCaracteristics(CaracteristicMap.copy(defaultCaracteristicMap)); } public IndividualObservationBatchRowModel(WeightUnit weightUnit, Collection<Caracteristic> defaultCaracteristicsSet, IndividualObservationBatch entity) { - this(weightUnit, defaultCaracteristicsSet); + + this(weightUnit, CaracteristicMap.fromCollection(defaultCaracteristicsSet)); fromEntity(entity); } 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 de460d0..cfce2d3 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 @@ -22,13 +22,16 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservatio * #L% */ +import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.ui.swing.util.table.CaracteristicColumnIdentifier; import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; +import java.io.Serializable; import java.util.Collection; import static org.nuiton.i18n.I18n.n; @@ -78,7 +81,7 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab */ protected final WeightUnit weightUnit; - protected final Collection<Caracteristic> defaultCaracteristicsSet; + protected final CaracteristicMap defaultCaracteristicsMap; protected Species species; @@ -89,7 +92,7 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab TableColumnModelExt columnModel) { super(columnModel, true, false); this.weightUnit = weightUnit; - this.defaultCaracteristicsSet = defaultCaracteristicsSet; + this.defaultCaracteristicsMap = CaracteristicMap.fromCollection(defaultCaracteristicsSet); setNoneEditableCols(RANK); } @@ -108,10 +111,16 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab } } + public void setDefaultCaracteristicValues(CaracteristicMap defaultCaracteristicValues) { + defaultCaracteristicsMap.replaceAll( + (caracteristic, serializable) -> defaultCaracteristicValues.get(caracteristic) + ); + } + @Override public IndividualObservationBatchRowModel createNewRow() { IndividualObservationBatchRowModel result = - new IndividualObservationBatchRowModel(weightUnit, defaultCaracteristicsSet); + new IndividualObservationBatchRowModel(weightUnit, defaultCaracteristicsMap); // by default empty row is not valid result.setValid(false); @@ -122,6 +131,27 @@ public class IndividualObservationBatchTableModel extends AbstractApplicationTab return result; } + @Override + protected boolean isCellEditable(int rowIndex, int columnIndex, + ColumnIdentifier<IndividualObservationBatchRowModel> columnIdentifier) { + + boolean editable; + if (columnIdentifier instanceof CaracteristicColumnIdentifier) { + + CaracteristicColumnIdentifier<IndividualObservationBatchRowModel> caracteristicColumnIdentifier = + (CaracteristicColumnIdentifier<IndividualObservationBatchRowModel>) columnIdentifier; + + Caracteristic caracteristic = caracteristicColumnIdentifier.getCaracteristic(); + Serializable defaultValue = defaultCaracteristicsMap.get(caracteristic); + + editable = defaultValue == null; + + } else { + editable = super.isCellEditable(rowIndex, columnIndex, columnIdentifier); + } + return editable; + } + public IndividualObservationBatchRowModel getEmptyRow() { IndividualObservationBatchRowModel result = null; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java index e7bd910..363ff0f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java @@ -75,4 +75,8 @@ public class CaracteristicColumnIdentifier<R> extends ColumnIdentifier<R> { // reset the map in bean to fire property super.setValue(entry, map); } + + public Caracteristic getCaracteristic() { + return caracteristic; + } } -- 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/8063 in repository tutti. See http://git.codelutin.com/tutti.git commit c503ad66453d8b5935f672254fe5541070454405 Author: Kevin Morin <morin@codelutin.com> Date: Tue Mar 8 16:07:04 2016 +0100 on pousse les valeurs des catégorisations dans le modèle de table (fixes #8063) --- .../catches/species/frequency/SpeciesFrequencyUIHandler.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 485a7f8..3b9a3c7 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 @@ -27,8 +27,10 @@ import com.google.common.collect.Sets; import fr.ifremer.tutti.ichtyometer.feed.event.FeedReaderEvent; import fr.ifremer.tutti.ichtyometer.feed.event.FeedReaderListener; import fr.ifremer.tutti.ichtyometer.feed.record.FeedReaderMeasureRecord; +import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; @@ -109,6 +111,7 @@ import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Optional; @@ -861,6 +864,15 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci IndividualObservationBatchTableModel obsTableModel = getObsTableModel(); obsTableModel.setSpecies(speciesBatch.getSpecies()); + CaracteristicMap sampleCategoryValues = new CaracteristicMap(); + Iterator<SampleCategory<?>> iterator = speciesBatch.iterator(); + iterator.forEachRemaining(sampleCategory -> { + Caracteristic caracteristic = sampleCategory.getCategoryDef().getCaracteristic(); + sampleCategoryValues.put(caracteristic, sampleCategory.getCategoryValue()); + }); + + obsTableModel.setDefaultCaracteristicValues(sampleCategoryValues); + model.setIndividualObservationRows(obsRows); obsTableModel.setRows(obsRows); model.recomputeIndividualObservationRowsValidateState(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm