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
/**
	 * Copies attributes of the given element into the given widget.
	 * <p>
	 * This method is internal to the framework; subclassers should not call
	 * this method. Calls <code>doUpdateItem(widget, element, true)</code>.
	 * </p>
	 * 
	 * @param widget
	 *            the widget
	 * @param element
	 *            the element
	 */
	protected final void updateItem(Widget widget, Object element) {
		Platform.run(new UpdateItemSafeRunnable(widget, element, true));
	}
	/**
	 * Updates the selection of this viewer.
	 * <p>
	 * This framework method should be called when the selection in the viewer
	 * widget changes.
	 * </p>
	 * <p>
	 * The default implementation of this method notifies all selection change
	 * listeners recorded in an internal state variable. Overriding this method
	 * is generally not required; however, if overriding in a subclass,
	 * <code>super.updateSelection</code> must be invoked.
	 * </p>
	 * 
	 * @param selection
	 *            the selection, or <code>null</code> if none