From 64055b176072c2c03e10af7dc036d0d975998d1f Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 11 Sep 2013 19:37:38 +0400 Subject: [PATCH] resource roots: show 'out of source' icon for java files under resource roots --- .../projectView/impl/ClassesTreeStructureProvider.java | 3 ++- .../src/com/intellij/openapi/roots/FileIndexUtil.java | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java b/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java index bcca6cd1b05b..518fb06fea75 100644 --- a/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java +++ b/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java @@ -30,6 +30,7 @@ import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes; import java.util.ArrayList; import java.util.Collection; @@ -90,7 +91,7 @@ public class ClassesTreeStructureProvider implements SelectableTreeStructureProv private boolean fileInRoots(VirtualFile file) { final ProjectFileIndex index = ProjectRootManager.getInstance(myProject).getFileIndex(); - return file != null && (index.isInSourceContent(file) || index.isInLibraryClasses(file) || index.isInLibrarySource(file)); + return file != null && (index.isUnderSourceRootOfType(file, JavaModuleSourceRootTypes.SOURCES) || index.isInLibraryClasses(file) || index.isInLibrarySource(file)); } @Override diff --git a/java/openapi/src/com/intellij/openapi/roots/FileIndexUtil.java b/java/openapi/src/com/intellij/openapi/roots/FileIndexUtil.java index 42e5f38794bf..ddeda9a31c73 100644 --- a/java/openapi/src/com/intellij/openapi/roots/FileIndexUtil.java +++ b/java/openapi/src/com/intellij/openapi/roots/FileIndexUtil.java @@ -20,6 +20,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.fileTypes.FileTypeManager; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes; /** * @author yole @@ -30,9 +31,10 @@ public class FileIndexUtil { public static boolean isJavaSourceFile(@NotNull Project project, @NotNull VirtualFile file) { FileTypeManager fileTypeManager = FileTypeManager.getInstance(); - if (file.isDirectory()) return false; - if (file.getFileType() != StdFileTypes.JAVA) return false; - if (fileTypeManager.isFileIgnored(file)) return false; - return ProjectRootManager.getInstance(project).getFileIndex().isInSource(file); + if (file.isDirectory() || file.getFileType() != StdFileTypes.JAVA || fileTypeManager.isFileIgnored(file)) { + return false; + } + ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex(); + return fileIndex.isUnderSourceRootOfType(file, JavaModuleSourceRootTypes.SOURCES) || fileIndex.isInLibrarySource(file); } }