1 package com
.intellij
.ide
.hierarchy
.call
;
3 import com
.intellij
.ide
.hierarchy
.HierarchyProvider
;
4 import com
.intellij
.ide
.hierarchy
.HierarchyBrowser
;
5 import com
.intellij
.ide
.hierarchy
.CallHierarchyBrowserBase
;
6 import com
.intellij
.psi
.PsiElement
;
7 import com
.intellij
.psi
.PsiMethod
;
8 import com
.intellij
.psi
.util
.PsiTreeUtil
;
9 import com
.intellij
.openapi
.actionSystem
.DataContext
;
10 import com
.intellij
.openapi
.actionSystem
.PlatformDataKeys
;
11 import com
.intellij
.openapi
.actionSystem
.LangDataKeys
;
12 import com
.intellij
.openapi
.project
.Project
;
17 public class JavaCallHierarchyProvider
implements HierarchyProvider
{
18 public PsiElement
getTarget(final DataContext dataContext
) {
19 final Project project
= PlatformDataKeys
.PROJECT
.getData(dataContext
);
20 if (project
== null) return null;
22 final PsiElement element
= LangDataKeys
.PSI_ELEMENT
.getData(dataContext
);
23 return PsiTreeUtil
.getParentOfType(element
, PsiMethod
.class, false);
26 public HierarchyBrowser
createHierarchyBrowser(final PsiElement target
) {
27 return new CallHierarchyBrowser(target
.getProject(), (PsiMethod
) target
);
30 public void browserActivated(final HierarchyBrowser hierarchyBrowser
) {
31 ((CallHierarchyBrowser
) hierarchyBrowser
).changeView(CallHierarchyBrowserBase
.CALLER_TYPE
);