From 1a5b0e06a0b3f21778b210dc42e7ced4ec8b8d1b Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Mon, 20 Jul 2015 11:24:47 +0200 Subject: [PATCH] extract duplicated code that creates tree / setups common actions --- .../hierarchy/TypeHierarchyBrowserBase.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java b/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java index 0b2efcc29c42..2e5b7062a1e9 100644 --- a/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java +++ b/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java @@ -24,8 +24,12 @@ import com.intellij.ide.util.DeleteHandler; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; +import com.intellij.ui.PopupHandler; import org.jetbrains.annotations.NotNull; +import javax.swing.*; +import java.util.Map; + public abstract class TypeHierarchyBrowserBase extends HierarchyBrowserBaseEx { @SuppressWarnings({"UnresolvedPropertyKey"}) @@ -48,6 +52,27 @@ public abstract class TypeHierarchyBrowserBase extends HierarchyBrowserBaseEx { protected abstract boolean isInterface(PsiElement psiElement); + protected void createTreeAndSetupCommonActions(@NotNull Map trees, ActionGroup group) { + final BaseOnThisTypeAction baseOnThisTypeAction = new BaseOnThisTypeAction(); + final JTree tree1 = createTree(true); + PopupHandler.installPopupHandler(tree1, group, ActionPlaces.TYPE_HIERARCHY_VIEW_POPUP, ActionManager.getInstance()); + baseOnThisTypeAction + .registerCustomShortcutSet(ActionManager.getInstance().getAction(IdeActions.ACTION_TYPE_HIERARCHY).getShortcutSet(), tree1); + trees.put(TYPE_HIERARCHY_TYPE, tree1); + + final JTree tree2 = createTree(true); + PopupHandler.installPopupHandler(tree2, group, ActionPlaces.TYPE_HIERARCHY_VIEW_POPUP, ActionManager.getInstance()); + baseOnThisTypeAction + .registerCustomShortcutSet(ActionManager.getInstance().getAction(IdeActions.ACTION_TYPE_HIERARCHY).getShortcutSet(), tree2); + trees.put(SUPERTYPES_HIERARCHY_TYPE, tree2); + + final JTree tree3 = createTree(true); + PopupHandler.installPopupHandler(tree3, group, ActionPlaces.TYPE_HIERARCHY_VIEW_POPUP, ActionManager.getInstance()); + baseOnThisTypeAction + .registerCustomShortcutSet(ActionManager.getInstance().getAction(IdeActions.ACTION_TYPE_HIERARCHY).getShortcutSet(), tree3); + trees.put(SUBTYPES_HIERARCHY_TYPE, tree3); + } + protected abstract boolean canBeDeleted(PsiElement psiElement); protected abstract String getQualifiedName(PsiElement psiElement);