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
*            the elements to filter
	 * @return only the elements which all filters accept
	 */
	protected Object[] filter(Object[] elements) {
		if (filters != null) {
			ArrayList filtered = new ArrayList(elements.length);
			Object root = getRoot();
			for (int i = 0; i < elements.length; i++) {
				boolean add = true;
				for (int j = 0; j < filters.size(); j++) {
					add = ((ViewerFilter) filters.get(j)).select(this, root, elements[i]);
					if (!add)
						break;
				}
				if (add)
					filtered.add(elements[i]);
			}
			return filtered.toArray();
		}
		return elements;
	}
	/**
	 * Finds the widget which represents the given element.
	 * <p>
	 * The default implementation of this method tries first to find the widget
	 * for the given element assuming that it is the viewer's input; this is
	 * done by calling <code>doFindInputItem</code>. If it is not found
	 * there, it is looked up in the internal element map provided that this
	 * feature has been enabled. If the element map is disabled, the widget is
	 * found via <code>doFindInputItem</code>.