Bug 89137 [JFace] - API Review - "temporary" API in AbstractTreeViewer
AbstractTreeViewer contains two methods documented as "temporary" internalRefresh(Widget, Object) internalAdd(Widget, Object, Object [])
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
protected int indexForElement(Widget parent, Object element) {
        ViewerSorter sorter = getSorter();
		
		int count;
		if(parent instanceof Control)
			count = getItemCount((Control) parent);
		else{
			if(parent instanceof Item)
				count = getItemCount((Item) parent);
			else
				count = getChildren(parent).length;
		}
        if (sorter == null)
            return count;
        int min = 0, max = count - 1;
        while (min <= max) {
            int mid = (min + max) / 2;
            Object data = getChild (parent, mid).getData();
            int compare = sorter.compare(this, data, element);
            if (compare == 0) {
                
                while (compare == 0) {
                    ++mid;
                    if (mid >= count) {
                        break;
                    }
                    data = getChild (parent, mid).getData();
                    compare = sorter.compare(this, data, element);
                }
                return mid;