package com.redhat.ceylon.eclipse.code.navigator;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.viewers.Viewer;
public class NonEssentialEmptyInnerPackageFilter extends NonEssentialElementsFilter {
public NonEssentialEmptyInnerPackageFilter() {
super();
}
@Override
protected boolean doSelect(Viewer viewer, Object parent, Object element) {
if (element instanceof IPackageFragment) {
IPackageFragment pkg= (IPackageFragment)element;
try {
if (pkg.isDefaultPackage()) {
if (pkg.hasChildren() || hasUnfilteredResources(viewer, pkg)) {
return true;
}
if (pkg instanceof SourceModuleNode) {
for (IPackageFragment pf : ((SourceModuleNode)pkg).getPackageFragments()) {
if (! pf.isDefaultPackage()) {
return true;
}
}
}
return false;
}
return pkg instanceof SourceModuleNode || !pkg.hasSubpackages() || pkg.hasChildren() || hasUnfilteredResources(viewer, pkg);
} catch (JavaModelException e) {
return false;
}
}
return true;
}
}