/* * (non-Javadoc) * * @see * org.eclipse.jdt.ui.StandardJavaElementContentProvider#getPackageFragmentRoots * (org.eclipse.jdt.core.IJavaProject) */ protected Object[] getProjectFragments(final IScriptProject project) throws ModelException { if (!project.getProject().isOpen()) { return StandardModelElementContentProvider.NO_CHILDREN; } List<Object> result = new ArrayList<Object>(); boolean addZIPContainer = false; IProjectFragment[] roots = project.getProjectFragments(); for (int i = 0; i < roots.length; i++) { IProjectFragment root = roots[i]; IBuildpathEntry classpathEntry = root.getRawBuildpathEntry(); if (classpathEntry == null) { continue; } int entryKind = classpathEntry.getEntryKind(); if (entryKind == IBuildpathEntry.BPE_CONTAINER) { // all ClassPathContainers are added later } else if (fShowLibrariesNode && (entryKind == IBuildpathEntry.BPE_LIBRARY /* * || entryKind * == * IBuildpathEntry * .BPE_VARIABLE */)) { addZIPContainer = true; } else { if (isProjectProjectFragment(root)) { // filter out package fragments that correspond to projects // and // replace them with the package fragments directly Object[] fragments = getProjectFragmentContent(root); for (int j = 0; j < fragments.length; j++) { result.add(fragments[j]); } } else { result.add(root); } } } if (addZIPContainer) { result.add(new LibraryContainer(project)); } // separate loop to make sure all containers are on the classpath IBuildpathEntry[] rawBuidspath = project.getRawBuildpath(); for (int i = 0; i < rawBuidspath.length; i++) { IBuildpathEntry classpathEntry = rawBuidspath[i]; if (classpathEntry.getEntryKind() == IBuildpathEntry.BPE_CONTAINER) { result.add(new BuildPathContainer(project, classpathEntry)); } } Object[] resources = project.getForeignResources(); for (int i = 0; i < resources.length; i++) { result.add(resources[i]); } return result.toArray(); }