package com.jetbrains.lang.dart.ide.hierarchy.call; import com.intellij.ide.hierarchy.CallHierarchyBrowserBase; import com.intellij.ide.hierarchy.HierarchyBrowser; import com.intellij.ide.hierarchy.HierarchyProvider; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.psi.PsiElement; import com.jetbrains.lang.dart.ide.hierarchy.DartHierarchyUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class DartCallHierarchyProvider implements HierarchyProvider { @Nullable @Override public PsiElement getTarget(@NotNull DataContext dataContext) { return DartHierarchyUtil.getResolvedElementAtCursor(dataContext); } @NotNull @Override public HierarchyBrowser createHierarchyBrowser(PsiElement target) { return new DartCallHierarchyBrowser(target.getProject(), target); } @Override public void browserActivated(@NotNull HierarchyBrowser hierarchyBrowser) { ((DartCallHierarchyBrowser)hierarchyBrowser).changeView(CallHierarchyBrowserBase.CALLER_TYPE); } }