Bug 99736 [render] Hide non-public members hides public enum constants.
Found in 3.1RC2. In the option view, the "Hide Non-Public Members" option hides enum constants, even when they are public. Example: public enum Foo { BAR } with "Hide Non-Public Members" on, just shows Foo. Should show BAR as a child of Foo.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/MemberFilter.java
if (hasFilter(FILTER_NONPUBLIC) && !Flags.isPublic(flags) && !isMemberInInterfaceOrAnnotation(member) && !isTopLevelType(member)) {
					return false;
				}
			}			
		} catch (JavaModelException e) {
			
		}
		return true;
	}
	
	private boolean isLocalType(IType type) {
		IJavaElement parent= type.getParent();
		return parent instanceof IMember && !(parent instanceof IType);
	}
	
	private boolean isMemberInInterfaceOrAnnotation(IMember member) throws JavaModelException {
		IType parent= member.getDeclaringType();
		return parent != null && JavaModelUtil.isInterfaceOrAnnotation(parent);
	}
	
	private boolean isFieldInInterfaceOrAnnotation(IMember member) throws JavaModelException {
		return (member.getElementType() == IJavaElement.FIELD) && JavaModelUtil.isInterfaceOrAnnotation(member.getDeclaringType());
	}	
	
	private boolean isTopLevelType(IMember member) {
		IType parent= member.getDeclaringType();
		return parent == null;
	}		
}