From b40fbeeb7604174f0761c9b537d156c03044d487 Mon Sep 17 00:00:00 2001 From: nik Date: Fri, 19 Nov 2010 11:29:34 +0300 Subject: [PATCH] fixed autoscroll from sources for jars containing *.class and *.java files together (IDEA-26915) --- .../impl/ClassesTreeStructureProvider.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 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 4b9b00d4c762..6e00723653a6 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 @@ -48,16 +48,16 @@ public class ClassesTreeStructureProvider implements SelectableTreeStructureProv final PsiClassOwner classOwner = (PsiClassOwner)o; final VirtualFile file = classOwner.getVirtualFile(); - if (classOwner instanceof PsiCompiledElement) { + if (!(classOwner instanceof PsiCompiledElement)) { //do not show duplicated items if jar file contains classes and sources final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex(); - if (file != null && fileIndex.isInLibraryClasses(file)) { - final PsiElement sourceElement = classOwner.getNavigationElement(); - if (sourceElement instanceof PsiFile) { - PsiFile sourceFile = (PsiFile)sourceElement; - final VirtualFile virtualSourceFile = sourceFile.getVirtualFile(); - if (virtualSourceFile != null && fileIndex.isInLibrarySource(virtualSourceFile) && - classOwner.getManager().areElementsEquivalent(classOwner.getContainingDirectory(), sourceFile.getContainingDirectory())) { + if (file != null && fileIndex.isInLibrarySource(file)) { + final PsiElement originalElement = classOwner.getOriginalElement(); + if (originalElement instanceof PsiFile) { + PsiFile classFile = (PsiFile)originalElement; + final VirtualFile virtualClassFile = classFile.getVirtualFile(); + if (virtualClassFile != null && fileIndex.isInLibraryClasses(virtualClassFile) && + classOwner.getManager().areElementsEquivalent(classOwner.getContainingDirectory(), classFile.getContainingDirectory())) { continue; } }