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
virtualMaterializeItem(treeItem);
			return treeItem.getItemCount() > 0;
		}
		return super.isExpandable(element);
	}
	protected Object getParentElement(Object element) {
		if (!(element instanceof TreePath)
				&& (getContentProvider() instanceof ILazyTreeContentProvider)) {
			ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
			return lazyTreeContentProvider.getParent(element);
		}
		return super.getParentElement(element);
	}
	protected void createChildren(Widget widget) {
		if (getContentProvider() instanceof ILazyTreeContentProvider) {
			final Item[] tis = getChildren(widget);
			if (tis != null && tis.length > 0) {
				
				for (int i = 0; i < tis.length; i++) {
					tis[i].getText();
				}
				return;
			}
			ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
			Object element = widget.getData();
			if (element == null && widget instanceof TreeItem) {
				
				virtualMaterializeItem((TreeItem) widget);
				
				element = widget.getData();