quick definitions: show location string when applicable (IDEA-22690)

This commit is contained in:
Anna Kozlova
2015-09-09 21:04:53 +03:00
parent d97a70dd6d
commit e8628dfd6d
@@ -36,6 +36,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComboBox;
import com.intellij.openapi.ui.popup.JBPopup;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vcs.FileStatusManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
@@ -100,23 +101,19 @@ public class ImplementationViewComponent extends JPanel {
private static class FileDescriptor {
public final PsiFile myFile;
public final String myElementPresentation;
private final String myLocationString;
public FileDescriptor(PsiFile file, PsiElement element) {
myFile = file;
myElementPresentation = getPresentation(element);
}
@Nullable
private static String getPresentation(PsiElement element) {
if (element instanceof NavigationItem) {
final ItemPresentation presentation = ((NavigationItem)element).getPresentation();
if (presentation != null) {
return presentation.getPresentableText();
}
final ItemPresentation presentation = element instanceof NavigationItem ? ((NavigationItem)element).getPresentation() : null;
if (presentation != null) {
myElementPresentation = presentation.getPresentableText();
myLocationString = presentation.getLocationString();
}
else {
myElementPresentation = element instanceof PsiNamedElement ? ((PsiNamedElement)element).getName() : null;
myLocationString = null;
}
if (element instanceof PsiNamedElement) return ((PsiNamedElement)element).getName();
return null;
}
public String getPresentableName(VirtualFile vFile) {
@@ -126,7 +123,7 @@ public class ImplementationViewComponent extends JPanel {
}
if (Comparing.strEqual(vFile.getName(), myElementPresentation + "." + vFile.getExtension())){
return presentableName;
return presentableName + (!StringUtil.isEmptyOrSpaces(myLocationString) ? " " + myLocationString : "");
}
return presentableName + " (" + myElementPresentation + ")";