Bug 158778 [Viewers] request for remove(parent, index) API on tree viewer
3.3 It would be helpful to have a 'remove(Object parent, int index)' method on the tree viewer to complement that 'replace(...)' and 'setChildCount(...)' APIs. The debug platform requires such a method to implement filtering in virtual tree views. Rather than performing a 'replace/remove' based on elements, the content provider can make one atomic call to remove an element at a specific index.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
			if (widget instanceof Tree && widget.getData() != null) {
				lazyTreeContentProvider.updateChildCount(widget.getData(), 0);
				return;
			}
		}
		super.internalInitializeTree(tree);
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#updatePlus(org.eclipse.swt.widgets.Item,
	 *      java.lang.Object)
	 */
	protected void updatePlus(Item item, Object element) {
		if (getContentProvider() instanceof ILazyTreeContentProvider) {
			ILazyTreeContentProvider contentProvider = (ILazyTreeContentProvider) getContentProvider();
			Object data = item.getData();
			int itemCount = 0;
			if (data != null) {
				
				itemCount = ((TreeItem) item).getItemCount();
			}
			contentProvider.updateChildCount(element, itemCount);
		} else {
			super.updatePlus(item, element);
		}
	}
}