X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Ftables%2Fmi%2FRowHighlighter.java;h=17b2cd22dd93a239ebe258587b7d34ba7d5fe6aa;hb=a4ef021616f9bf3b6a7778c7b5b6a22d5a7d1c20;hp=18e010849884b141f67cc0b8574a590ee1d5ec7c;hpb=ae2d1ae853d5232df4337e4b2c417a9d57e11aa7;p=Mograsim.git diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/RowHighlighter.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/RowHighlighter.java index 18e01084..17b2cd22 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/RowHighlighter.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/RowHighlighter.java @@ -1,5 +1,6 @@ package net.mograsim.plugin.tables.mi; +import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.swt.widgets.Display; @@ -9,13 +10,15 @@ import net.mograsim.plugin.tables.LazyTableViewer; public class RowHighlighter { - private int highlighted, toHighlight; + private int highlighted = -1, toHighlight; private LazyTableViewer viewer; private AtomicBoolean waiting = new AtomicBoolean(); + private ColorProvider cProv; - public RowHighlighter(LazyTableViewer viewer) + public RowHighlighter(LazyTableViewer viewer, ColorProvider cProv) { this.viewer = viewer; + this.cProv = cProv; } public void highlight(int row) @@ -41,14 +44,16 @@ public class RowHighlighter private void innerHighlight(int row) { - viewer.highlightRow(highlighted, false); - highlighted = row; + Table table = viewer.getTable(); + cProv.highlight(row); if (row != -1) { - viewer.highlightRow(row, true); - Table table = viewer.getTable(); table.showItem(table.getItem(Math.min(table.getItemCount(), row + 2))); table.showItem(table.getItem(row)); + Optional.of(table.getItem(row).getData()).ifPresent(d -> viewer.update(d, null)); } + if (highlighted != -1) + Optional.of(table.getItem(highlighted).getData()).ifPresent(d -> viewer.update(d, null)); + highlighted = row; } }