Bug 88993 [Viewers] CCE in AbstractTreeViewer.indexForElement(..)
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
*           the control
     */
    protected abstract void removeAll(Control control);
    /**
     * Removes a listener for expand and collapse events in this viewer. Has no
     * affect if an identical listener is not registered.
     * 
     * @param listener
     *           a tree viewer listener
     */
    public void removeTreeListener(ITreeViewerListener listener) {
        treeListeners.remove(listener);
    }
    
    public void reveal(Object element) {
        Assert.isNotNull(element);
        Widget w = internalExpand(element, true);
        if (w instanceof Item)
            showItem((Item) w);
    }
    /**
     * Returns the rightmost visible descendent of the given item. Returns the
     * item itself if it has no children.
     * 
     * @param item
     *           the item to compute the descendent of
     * @return the rightmost visible descendent or the item iself if it has no
     *         children
     */
    private Item rightMostVisibleDescendent(Item item) {