diff --git a/platform/lang-impl/src/com/intellij/packageDependencies/ui/FileNode.java b/platform/lang-impl/src/com/intellij/packageDependencies/ui/FileNode.java index faa4a7324296..9c368a372ba7 100644 --- a/platform/lang-impl/src/com/intellij/packageDependencies/ui/FileNode.java +++ b/platform/lang-impl/src/com/intellij/packageDependencies/ui/FileNode.java @@ -18,6 +18,7 @@ package com.intellij.packageDependencies.ui; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Iconable; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.FileStatusManager; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; @@ -31,7 +32,7 @@ import java.awt.*; import java.util.Map; import java.util.Set; -public class FileNode extends PackageDependenciesNode { +public class FileNode extends PackageDependenciesNode implements Comparable{ private final VirtualFile myVFile; private final boolean myMarked; @@ -124,4 +125,13 @@ public class FileNode extends PackageDependenciesNode { private PsiFile getFile() { return myVFile.isValid() ? PsiManager.getInstance(myProject).findFile(myVFile) : null; } + + @Override + public int compareTo(FileNode o) { + final int compare = StringUtil.compare(myVFile != null ? myVFile.getFileType().getDefaultExtension() : null, + o.myVFile != null ? o.myVFile.getFileType().getDefaultExtension() : null, + true); + if (compare != 0) return compare; + return StringUtil.compare(toString(), o.toString(), true); + } }