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) {
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;
@@ -45,14 +45,16 @@ public class JetFileTreeNode extends PsiFileNode {
if (file == null) return Collections.emptyList();
ArrayList<AbstractTreeNode> result = new ArrayList<AbstractTreeNode>();
List<JetDeclaration> declarations = file.getDeclarations();
if (getSettings().isShowMembers()) {
List<JetDeclaration> 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()));
}
}
}
@@ -59,7 +59,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider,
List<JetDeclaration> 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();