This class is not intended to be subclassed outside the viewer framework. It
is designed to be instantiated with a pre-existing SWT table control and
configured with a domain-specific content provider, table label provider,
element filter (optional), and element sorter (optional).
Label providers for table viewers must implement either the
ITableLabelProvider or the ILabelProvider
interface (see TableViewer.setLabelProvider for more details).
As of 3.1 the TableViewer now supports the SWT.VIRTUAL flag. If the
underlying table is SWT.VIRTUAL, the content provider may implement
ILazyContentProvider instead of IStructuredContentProvider .
Note that in this case, the viewer does not support sorting or filtering.
Also note that in this case, the Widget based APIs may return null if the
element is not specified or not created yet.
Users of SWT.VIRTUAL should also avoid using getItems() from the Table within
the TreeViewer as this does not necessarily generate a callback for the
TreeViewer to populate the items. It also has the side effect of creating all
of the items thereby eliminating the performance improvements of SWT.VIRTUAL.