1 package com
.intellij
.ide
.projectView
.impl
.nodes
;
3 import com
.intellij
.ide
.projectView
.PresentationData
;
4 import com
.intellij
.ide
.projectView
.ViewSettings
;
5 import com
.intellij
.ide
.util
.treeView
.AbstractTreeNode
;
6 import com
.intellij
.openapi
.fileTypes
.StdFileTypes
;
7 import com
.intellij
.openapi
.project
.Project
;
8 import com
.intellij
.openapi
.util
.Iconable
;
9 import com
.intellij
.openapi
.vfs
.VirtualFile
;
10 import com
.intellij
.psi
.PsiFile
;
12 import java
.util
.ArrayList
;
13 import java
.util
.Collection
;
15 public class PsiFileNode
extends BasePsiNode
<PsiFile
>{
17 public PsiFileNode(Project project
, PsiFile value
, ViewSettings viewSettings
) {
18 super(project
, value
, viewSettings
);
21 public Collection
<AbstractTreeNode
> getChildrenImpl() {
22 return new ArrayList
<AbstractTreeNode
>();
25 protected void updateImpl(PresentationData data
) {
26 final PsiFile value
= getValue();
27 data
.setPresentableText(value
.getName());
28 data
.setIcons(value
.getIcon(Iconable
.ICON_FLAG_READ_STATUS
));
31 public VirtualFile
getVirtualFile() {
32 return getValue().getVirtualFile();
35 public int getWeight() {
40 public String
getTitle() {
41 final PsiFile file
= getValue();
43 return file
.getVirtualFile().getPresentableUrl();
45 return super.getTitle();
49 protected boolean isMarkReadOnly() {
53 public Comparable
getTypeSortKey() {
54 String extension
= extension(getValue());
55 return extension
== null ?
null : new ExtensionSortKey(extension
);
58 public static String
extension(final PsiFile file
) {
59 return file
== null || file
.getVirtualFile() == null ?
null : file
.getVirtualFile().getFileType().getDefaultExtension();
62 public static class ExtensionSortKey
implements Comparable
{
63 private String myExtension
;
65 public ExtensionSortKey(final String extension
) {
66 myExtension
= extension
;
69 public int compareTo(final Object o
) {
70 if (!(o
instanceof ExtensionSortKey
)) return 0;
71 ExtensionSortKey rhs
= (ExtensionSortKey
) o
;
72 return myExtension
.compareTo(rhs
.myExtension
);
77 public boolean shouldDrillDownOnEmptyElement() {
78 final PsiFile file
= getValue();
79 return file
!= null && file
.getFileType() == StdFileTypes
.JAVA
;
82 public boolean canRepresent(final Object element
) {
83 return super.canRepresent(element
) || getValue().getVirtualFile() == element
;