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
if (widget instanceof Tree || ((TreeItem) widget).getExpanded()) {
			
			if (element != null) {
				lazyTreeContentProvider.updateChildCount(element,
						getChildren(widget).length);
			} else {
				if (widget instanceof Tree) {
					((Tree) widget).setItemCount(0);
				} else {
					((TreeItem) widget).setItemCount(0);
				}
			}
			
			
			Item[] items = getChildren(widget);
			for (int i = 0; i < items.length; i++) {
				Item item = items[i];
				Object data = item.getData();
				if (data != null) {
					virtualRefreshChildCounts(item, data);
				}
			}
		}
	}
	/*
	 * To unmap elements correctly, we need to register a dispose listener with
	 * the item if the tree is virtual.
	 */
	protected void mapElement(Object element, final Widget item) {
		super.mapElement(element, item);