1 package net.mograsim.plugin.tables;
3 import org.eclipse.jface.viewers.IContentProvider;
4 import org.eclipse.jface.viewers.ILazyContentProvider;
5 import org.eclipse.jface.viewers.TableViewer;
6 import org.eclipse.swt.SWT;
7 import org.eclipse.swt.widgets.Composite;
8 import org.eclipse.swt.widgets.Table;
10 public class LazyTableViewer extends TableViewer
13 public LazyTableViewer(Composite parent, int style)
15 super(parent, style | SWT.VIRTUAL);
18 public LazyTableViewer(Composite parent)
23 public LazyTableViewer(Table table)
29 public void setContentProvider(IContentProvider provider)
31 if (!(provider instanceof ILazyContentProvider))
32 throw new IllegalArgumentException("Content provider must be an ILazyContentProvider");
33 super.setContentProvider(provider);
36 public void refreshLazy()
39 ILazyContentProvider provider = (ILazyContentProvider) getContentProvider();
41 int startIndex = t.getTopIndex();
42 int numRows = t.getBounds().height / t.getItemHeight();
43 int endIndex = startIndex + numRows + 5;
45 for (int i = startIndex; i < endIndex; i++)
47 provider.updateElement(i);