extract duplicated code that creates tree / setups common actions

This commit is contained in:
Maxim.Mossienko
2015-07-20 11:24:47 +02:00
parent 437cdd7c4e
commit 1a5b0e06a0
@@ -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<String, JTree> 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);