diff --git a/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java b/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java index b5a8ca72a00..3c6c5ba6227 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java @@ -44,7 +44,7 @@ public class JetIconProvider extends IconProvider { if (psiElement instanceof JetFile) { JetFile file = (JetFile) psiElement; JetClassOrObject mainClass = getMainClass(file); - return mainClass != null ? getIcon(mainClass, flags) : JetIcons.FILE; + return mainClass != null && file.getDeclarations().size() == 1 ? getIcon(mainClass, flags) : JetIcons.FILE; } if (psiElement instanceof JetNamespaceHeader) { return (flags & Iconable.ICON_FLAG_OPEN) != 0 ? PlatformIcons.PACKAGE_OPEN_ICON : PlatformIcons.PACKAGE_ICON; diff --git a/idea/src/org/jetbrains/jet/plugin/projectView/JetFileTreeNode.java b/idea/src/org/jetbrains/jet/plugin/projectView/JetFileTreeNode.java index bb1ebec48fe..26d00599f81 100644 --- a/idea/src/org/jetbrains/jet/plugin/projectView/JetFileTreeNode.java +++ b/idea/src/org/jetbrains/jet/plugin/projectView/JetFileTreeNode.java @@ -45,14 +45,16 @@ public class JetFileTreeNode extends PsiFileNode { if (file == null) return Collections.emptyList(); ArrayList result = new ArrayList(); - List declarations = file.getDeclarations(); + if (getSettings().isShowMembers()) { + List declarations = file.getDeclarations(); - for (JetDeclaration declaration : declarations) { - if (declaration instanceof JetClassOrObject) { - result.add(new JetClassOrObjectTreeNode(file.getProject(), (JetClassOrObject) declaration, getSettings())); - } - else if (getSettings().isShowMembers()) { - result.add(new JetDeclarationTreeNode(getProject(), declaration, getSettings())); + for (JetDeclaration declaration : declarations) { + if (declaration instanceof JetClassOrObject) { + result.add(new JetClassOrObjectTreeNode(file.getProject(), (JetClassOrObject) declaration, getSettings())); + } + else if (getSettings().isShowMembers()) { + result.add(new JetDeclarationTreeNode(getProject(), declaration, getSettings())); + } } } diff --git a/idea/src/org/jetbrains/jet/plugin/projectView/JetProjectViewProvider.java b/idea/src/org/jetbrains/jet/plugin/projectView/JetProjectViewProvider.java index 31f8e8c54a1..c92bee9b80c 100644 --- a/idea/src/org/jetbrains/jet/plugin/projectView/JetProjectViewProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/projectView/JetProjectViewProvider.java @@ -59,7 +59,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider, List declarations = file.getDeclarations(); JetClassOrObject mainClass = JetIconProvider.getMainClass(file); - if (mainClass != null && (!settings.isShowMembers() || declarations.size() == 1)) { + if (mainClass != null && declarations.size() == 1) { result.add(new JetClassOrObjectTreeNode(file.getProject(), mainClass, settings)); } else { @@ -106,7 +106,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider, return current != null ? current : file; } - private boolean isSelectable(PsiElement element) { + private static boolean isSelectable(PsiElement element) { if (element instanceof JetFile) return true; if (element instanceof JetDeclaration) { PsiElement parent = element.getParent();