1 package com
.intellij
.ide
.projectView
.impl
.nodes
;
3 import com
.intellij
.ide
.projectView
.ViewSettings
;
4 import com
.intellij
.ide
.util
.treeView
.AbstractTreeNode
;
5 import com
.intellij
.openapi
.diagnostic
.Logger
;
6 import com
.intellij
.openapi
.module
.Module
;
7 import com
.intellij
.openapi
.project
.Project
;
8 import com
.intellij
.openapi
.roots
.ModuleFileIndex
;
9 import com
.intellij
.openapi
.roots
.ModuleRootManager
;
10 import com
.intellij
.openapi
.vfs
.VirtualFile
;
11 import com
.intellij
.psi
.PsiDirectory
;
12 import com
.intellij
.psi
.PsiManager
;
13 import org
.jetbrains
.annotations
.NotNull
;
15 import java
.util
.ArrayList
;
16 import java
.util
.Collection
;
17 import java
.util
.List
;
19 public class ProjectViewModuleNode
extends AbstractModuleNode
{
20 private static final Logger LOG
= Logger
.getInstance("#com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode");
22 public ProjectViewModuleNode(Project project
, Module value
, ViewSettings viewSettings
) {
23 super(project
, value
, viewSettings
);
26 public ProjectViewModuleNode(Project project
, Object value
, ViewSettings viewSettings
) {
27 this(project
, (Module
)value
, viewSettings
);
31 public Collection
<AbstractTreeNode
> getChildren() {
32 ModuleRootManager rootManager
= ModuleRootManager
.getInstance(getValue());
33 ModuleFileIndex moduleFileIndex
= rootManager
.getFileIndex();
35 final VirtualFile
[] contentRoots
= rootManager
.getContentRoots();
36 final List
<AbstractTreeNode
> children
= new ArrayList
<AbstractTreeNode
>(contentRoots
.length
+ 1);
37 final PsiManager psiManager
= PsiManager
.getInstance(getProject());
38 for (final VirtualFile contentRoot
: contentRoots
) {
39 LOG
.assertTrue(contentRoot
.isDirectory());
41 if (!moduleFileIndex
.isInContent(contentRoot
)) continue;
43 final PsiDirectory psiDirectory
= psiManager
.findDirectory(contentRoot
);
44 LOG
.assertTrue(psiDirectory
!= null);
46 PsiDirectoryNode directoryNode
= new PsiDirectoryNode(getProject(), psiDirectory
, getSettings());
47 children
.add(directoryNode
);
49 if (getSettings().isShowLibraryContents()) {
50 children
.add(new LibraryGroupNode(getProject(), new LibraryGroupElement(getValue()), getSettings()));
55 public int getWeight() {
59 public int getTypeSortWeight(final boolean sortByType
) {