Bug 157174 [Viewers] Refactor new Viewer API
We are yet not completely happy with the API and refactor it.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
			Object element = widget.getData();
			if (element == null && widget instanceof TreeItem) {
				
				virtualMaterializeItem((TreeItem) widget);
				
				element = widget.getData();
			}
			TreeItem[] children;
			if (widget instanceof Tree) {
				children = ((Tree) widget).getItems();
			} else {
				children = ((TreeItem) widget).getItems();
			}
			if (element != null && children.length > 0) {
				for (int i = 0; i < children.length; i++) {
					lazyTreeContentProvider.updateElement(element, i);
				}
			}
			return;
		}
		super.createChildren(widget);
	}
	protected void internalAdd(Widget widget, Object parentElement,
			Object[] childElements) {
		if (getContentProvider() instanceof ILazyTreeContentProvider) {
			if (widget instanceof TreeItem) {
				TreeItem ti = (TreeItem) widget;
				int count = ti.getItemCount() + childElements.length;
				ti.setItemCount(count);