Bug 44393 [Viewers] + shown in front of methods even if local types filter is on (different behaviour in outliner, members view and package explorer)
Test pass M4 - load JUnit - add an anonymous type to Assert#Assert - enable local type filter in Outliner observe: there is a plus in front of Assert which goes away when clicking on it. This might be JFace related but I would prefer that the plus is removed when the filter is switched on. - close Outliner - open Outliner observe: there isn't any plus sign in front of Assert - open Java Browsing perspective - enable local type filter in members view - select Assert class in Types view observe: the constructor Assert has a plus sign in front which goes away when clicking on it. - switch to another class - switch back to Assert observe: the constructor again has a plus sign in front. This is really annoying. The members view should at least behave like the outliner. - switch to package explorer - expand Assert - toggle local type filter observe: plus sign is added and removed correctly.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
* 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) {
		Item[] children = getItems(item);
		if (getExpanded(item) && children != null && children.length > 0) {
			return rightMostVisibleDescendent(children[children.length - 1]);
		} else {