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>.