Bug 82240 [Viewers] Need a content provider for tables that gets elements lazily
Currently all of our viewers assume that all of the elements are avialble. In the case of a virtual table we also want to be able to load elements as they become visible rather than all at once (common issue for databases). Here are some of the issues 1) Need to setItemCount on the table from the content provider 2) Need a getElements(start,finish) method on the content provider 3) Need to decide how to handle staleness. If there are a million items and the viewer just sits there scrolled to the bottom that is a million TableItems and a million Objects represented. How do we manage memory for this?
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java
* Refreshes this viewer starting at the given element.
	 * 
	 * @param element
	 *            the element
	 */
	protected abstract void internalRefresh(Object element);
	/**
	 * Refreshes this viewer starting at the given element. Labels are updated
	 * as described in <code>refresh(boolean updateLabels)</code>.
	 * <p>
	 * The default implementation simply calls
	 * <code>internalRefresh(element)</code>, ignoring
	 * <code>updateLabels</code>.
	 * <p>
	 * If this method is overridden to do the actual refresh, then
	 * <code>internalRefresh(Object element)</code> should simply call
	 * <code>internalRefresh(element, true)</code>.
	 * 
	 * @param element
	 *            the element
	 * @param updateLabels
	 *            <code>true</code> to update labels for existing elements,
	 *            <code>false</code> to only update labels as needed, assuming
	 *            that labels for existing elements are unchanged.
	 * 
	 * @since 2.0
	 */
	protected void internalRefresh(Object element, boolean updateLabels) {
		internalRefresh(element);
	}