package com.revolsys.swing.map.layer.record.table.predicate; import java.awt.Component; import org.jdesktop.swingx.decorator.ColorHighlighter; import org.jdesktop.swingx.decorator.ComponentAdapter; import org.jdesktop.swingx.decorator.HighlightPredicate; import org.jdesktop.swingx.decorator.Highlighter; import com.revolsys.awt.WebColors; import com.revolsys.record.Record; import com.revolsys.swing.map.layer.record.table.model.MergedRecordsTableModel; import com.revolsys.swing.table.record.RecordRowTable; public class MergedRecordPredicate implements HighlightPredicate { public static void add(final RecordRowTable table) { final MergedRecordsTableModel model = table.getTableModel(); final MergedRecordPredicate predicate = new MergedRecordPredicate(model); final Highlighter colors = new ColorHighlighter(predicate, WebColors.newAlpha(WebColors.Green, 64), WebColors.Black, WebColors.Green, WebColors.White); table.addHighlighter(colors); } private final MergedRecordsTableModel model; public MergedRecordPredicate(final MergedRecordsTableModel model) { this.model = model; } @Override public boolean isHighlighted(final Component renderer, final ComponentAdapter adapter) { try { final int rowIndex = adapter.convertRowIndexToModel(adapter.row); final Record object = this.model.getRecord(rowIndex); if (object == this.model.getMergedRecord()) { return true; } else { return false; } } catch (final IndexOutOfBoundsException e) { return false; } } }