1 package net.mograsim.plugin.tables.mi;
3 import java.util.concurrent.atomic.AtomicBoolean;
5 import org.eclipse.swt.widgets.Display;
6 import org.eclipse.swt.widgets.Table;
8 import net.mograsim.plugin.tables.LazyTableViewer;
10 public class RowHighlighter
12 private int highlighted, toHighlight;
13 private LazyTableViewer viewer;
14 private AtomicBoolean waiting = new AtomicBoolean();
16 public RowHighlighter(LazyTableViewer viewer)
21 public void highlight(int row)
23 synchronized (waiting)
29 Display.getDefault().asyncExec(() ->
31 synchronized (waiting)
34 if (!viewer.getTable().isDisposed())
35 innerHighlight(toHighlight);
42 private void innerHighlight(int row)
44 viewer.highlightRow(highlighted, false);
48 viewer.highlightRow(row, true);
49 Table table = viewer.getTable();
50 table.showItem(table.getItem(Math.min(table.getItemCount(), row + 2)));
51 table.showItem(table.getItem(row));