Bug 43999 Filter to hide anonymous inner classes in Outline View
A new feature was added in 3.0 to show all the inner classes. However in some cases (for example when you are implementing a large number of event listeners) this makes the Outline view very difficult to use because it becomes very cluttered. Also, the word "Anonymous" is quite long and comes at the front so that typically the useful information (the class name) is scrolled out of view. Could the class name be used instead (e.g. ControlListener$1)?
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/MemberFilter.java
}
				int flags= member.getFlags();
				if (hasFilter(FILTER_STATIC) && (Flags.isStatic(flags) || isFieldInInterface(member)) && member.getElementType() != IJavaElement.TYPE) {
					return false;
				}
				if (hasFilter(FILTER_NONPUBLIC) && !Flags.isPublic(flags) && !isMemberInInterface(member) && !isTopLevelType(member)) {
					return false;
				}
			}			
		} catch (JavaModelException e) {
			
		}
		return true;
	}
	
	private boolean isMemberInInterface(IMember member) throws JavaModelException {
		IType parent= member.getDeclaringType();
		return parent != null && parent.isInterface();
	}
	
	private boolean isFieldInInterface(IMember member) throws JavaModelException {
		return (member.getElementType() == IJavaElement.FIELD) && member.getDeclaringType().isInterface();
	}	
	
	private boolean isTopLevelType(IMember member) throws JavaModelException {
		IType parent= member.getDeclaringType();
		return parent == null;
	}		
}