common code extracted to base class
[fedora-idea.git] / source / com / intellij / ide / hierarchy / call / JavaCallHierarchyProvider.java
blob7af033ba0c5ed4cd753696731eb8fc4578944f48
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;
14 /**
15 * @author yole
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);