Do not show classes in file node by default in project view

This commit is contained in:
Nikolay Krasko
2012-06-29 19:40:58 +04:00
parent c44ee27d9e
commit e06e5198ed
3 changed files with 12 additions and 10 deletions
@@ -44,7 +44,7 @@ public class JetIconProvider extends IconProvider {
if (psiElement instanceof JetFile) { if (psiElement instanceof JetFile) {
JetFile file = (JetFile) psiElement; JetFile file = (JetFile) psiElement;
JetClassOrObject mainClass = getMainClass(file); 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) { if (psiElement instanceof JetNamespaceHeader) {
return (flags & Iconable.ICON_FLAG_OPEN) != 0 ? PlatformIcons.PACKAGE_OPEN_ICON : PlatformIcons.PACKAGE_ICON; return (flags & Iconable.ICON_FLAG_OPEN) != 0 ? PlatformIcons.PACKAGE_OPEN_ICON : PlatformIcons.PACKAGE_ICON;
@@ -45,14 +45,16 @@ public class JetFileTreeNode extends PsiFileNode {
if (file == null) return Collections.emptyList(); if (file == null) return Collections.emptyList();
ArrayList<AbstractTreeNode> result = new ArrayList<AbstractTreeNode>(); ArrayList<AbstractTreeNode> result = new ArrayList<AbstractTreeNode>();
List<JetDeclaration> declarations = file.getDeclarations(); if (getSettings().isShowMembers()) {
List<JetDeclaration> declarations = file.getDeclarations();
for (JetDeclaration declaration : declarations) { for (JetDeclaration declaration : declarations) {
if (declaration instanceof JetClassOrObject) { if (declaration instanceof JetClassOrObject) {
result.add(new JetClassOrObjectTreeNode(file.getProject(), (JetClassOrObject) declaration, getSettings())); result.add(new JetClassOrObjectTreeNode(file.getProject(), (JetClassOrObject) declaration, getSettings()));
} }
else if (getSettings().isShowMembers()) { else if (getSettings().isShowMembers()) {
result.add(new JetDeclarationTreeNode(getProject(), declaration, getSettings())); result.add(new JetDeclarationTreeNode(getProject(), declaration, getSettings()));
}
} }
} }
@@ -59,7 +59,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider,
List<JetDeclaration> declarations = file.getDeclarations(); List<JetDeclaration> declarations = file.getDeclarations();
JetClassOrObject mainClass = JetIconProvider.getMainClass(file); 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)); result.add(new JetClassOrObjectTreeNode(file.getProject(), mainClass, settings));
} }
else { else {
@@ -106,7 +106,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider,
return current != null ? current : file; 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 JetFile) return true;
if (element instanceof JetDeclaration) { if (element instanceof JetDeclaration) {
PsiElement parent = element.getParent(); PsiElement parent = element.getParent();