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/TableViewer.java
/**
	 * Initialize the virtual manager to manage the virtual state
	 * if the table is VIRTUAL. If not use the default no-op
	 * version.
	 * @param style
	 */
	private void initializeVirtualManager(int style) {
		if((style & SWT.VIRTUAL) == 0)
			return;
			
		virtualManager = new VirtualManager();	
	}
	/**
	 * Adds the given elements to this table viewer. If this viewer does not
	 * have a sorter, the elements are added at the end in the order given;
	 * otherwise the elements are inserted at appropriate positions.
	 * <p>
	 * This method should be called (by the content provider) when elements have
	 * been added to the model, in order to cause the viewer to accurately
	 * reflect the model. This method only affects the viewer, not the model.
	 * </p>
	 * 
	 * @param elements
	 *            the elements to add
	 */
	public void add(Object[] elements) {
		assertElementsNotNull(elements);
		Object[] filtered = filter(elements);