This is an automated email from the git hooks/post-receive script. New commit to branch feature/8035 in repository tutti. See http://git.codelutin.com/tutti.git commit c21f7d22c39da06955f28f884b29a7b7e1cda634 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Mar 1 18:02:41 2016 +0100 Ajout d'un hightlighter pour grouper et alterner la couleur de fond pour les espèces (See #8035) --- .../CalcifiedPiecesSamplingEditorTableModel.java | 24 ++++++++++++++++++++++ .../CalcifiedPiecesSamplingEditorUIHandler.java | 12 +++++++++++ 2 files changed, 36 insertions(+) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorTableModel.java index 823707b..d5c3a37 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorTableModel.java @@ -30,7 +30,10 @@ import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Objects; +import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -150,4 +153,25 @@ public class CalcifiedPiecesSamplingEditorTableModel extends AbstractApplication } return result; } + + public boolean isSpeciesOrderEven(int rowIndex) { + + CalcifiedPiecesSamplingEditorRowModel selectedRow = getEntry(rowIndex); + Integer selectedSpeciesReferenceTaxonId = selectedRow.getProtocolSpecies().getSpeciesReferenceTaxonId(); + + Set<Integer> speciesReferenceTaxonIds = new LinkedHashSet<>(); + for (CalcifiedPiecesSamplingEditorRowModel row : rows) { + Integer speciesReferenceTaxonId = row.getProtocolSpecies().getSpeciesReferenceTaxonId(); + speciesReferenceTaxonIds.add(speciesReferenceTaxonId); + if (Objects.equals(selectedSpeciesReferenceTaxonId, speciesReferenceTaxonId)) { + break; + } + } + int nbSpecies = speciesReferenceTaxonIds.size(); + + // Si on a trouvé des espèces, on doit alors incrémenter de 1 car l'espèce «0» est en fait la première trouvée ^^ + return nbSpecies == 0 || ((nbSpecies + 1) % 2 == 0); + + } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorUIHandler.java index 879c675..2af9fc8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/calcifiedpiecessampling/CalcifiedPiecesSamplingEditorUIHandler.java @@ -31,11 +31,13 @@ import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUI; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.cell.NumberCellEditor; import jaxx.runtime.validator.swing.SwingValidator; import org.jdesktop.swingx.JXTable; +import org.jdesktop.swingx.decorator.HighlightPredicate; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; import org.jdesktop.swingx.table.TableColumnExt; @@ -168,6 +170,16 @@ public class CalcifiedPiecesSamplingEditorUIHandler extends AbstractTuttiUIHandl .map(EditProtocolSpeciesRowModel::getSpecies) .collect(Collectors.toList())); }); + + HighlightPredicate speciesOrderEven = (renderer, adapter) -> { + int rowIndex = adapter.convertRowIndexToModel(adapter.row); + return tableModel.isSpeciesOrderEven(rowIndex); + }; + cpsTable.addHighlighter(TuttiUIUtil.newBackgroundColorHighlighter(speciesOrderEven, Color.WHITE)); + cpsTable.addHighlighter(TuttiUIUtil.newBackgroundColorHighlighter( + new HighlightPredicate.NotHighlightPredicate(speciesOrderEven), + getConfig().getColorAlternateRow())); + } protected DefaultTableColumnModelExt initTableColumnModel() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.