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/AbstractTreeViewer.java
if (!getExpanded(parentItem) && getItemCount(parentItem) == 0) {
				
				if (isExpandable(parentItem, null, parentItem.getData())) {
					newItem(parentItem, SWT.NULL, -1);
				} else {
					
					tree.redraw();
				}
			}
		}
	}
	/**
	 * Removes the given elements from this viewer, whenever those elements
	 * appear as children of the given parent.
	 * 
	 * @param elements
	 *            the elements to remove
	 * @since 3.1
	 */
	protected void internalRemove(Object parent, Object[] elements) {
		CustomHashtable toRemove = new CustomHashtable(getComparer());
		for (int i = 0; i < elements.length; i++) {
			toRemove.put(elements[i], elements[i]);
		}
		
		
		CustomHashtable parentItems = new CustomHashtable(5);
		
		Widget[] parentItemArray = findItems(parent);
		for (int i = 0; i < parentItemArray.length; i++) {