@Nullable
[fedora-idea.git] / lang-impl / src / com / intellij / ide / projectView / impl / nodes / PsiFileNode.java
blob77eea17d5736128b961ed00c7d683504c8267e2d
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() {
36 return 20;
39 @Override
40 public String getTitle() {
41 final PsiFile file = getValue();
42 if (file != null) {
43 return file.getVirtualFile().getPresentableUrl();
45 return super.getTitle();
48 @Override
49 protected boolean isMarkReadOnly() {
50 return true;
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);
76 @Override
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;