From 02809371116c609d88c7a5d047e6659db0fbfac1 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 27 Jan 2012 21:27:45 +0400 Subject: [PATCH] skip chooser if method from abstract class is chosen from non-abstract inheritor --- .../com/intellij/execution/junit/InheritorChooser.java | 9 +++++++++ .../intellij/execution/actions/ConfigurationContext.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java b/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java index e68e0647a63c..1c2ad30996d3 100644 --- a/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java +++ b/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java @@ -15,7 +15,9 @@ */ package com.intellij.execution.junit; +import com.intellij.execution.Location; import com.intellij.execution.actions.ConfigurationContext; +import com.intellij.execution.junit2.info.MethodLocation; import com.intellij.ide.util.PsiClassListCellRenderer; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -51,6 +53,13 @@ public class InheritorChooser { final PsiMethod psiMethod, final PsiClass containingClass) { if (containingClass != null && containingClass.hasModifierProperty(PsiModifier.ABSTRACT)) { + final Location location = context.getLocation(); + if (location instanceof MethodLocation) { + final PsiClass aClass = ((MethodLocation)location).getContainingClass(); + if (aClass != null && !aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { + return false; + } + } final List classes = new ArrayList(); if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() { @Override diff --git a/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java b/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java index ad4ab2353b8d..d4d70c074a77 100644 --- a/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java +++ b/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java @@ -112,7 +112,7 @@ public class ConfigurationContext { return myConfiguration; } - Location getLocation() { + public Location getLocation() { return myLocation; }