mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
prefer junit/testng pattern configuration: detect multiple selection directly by context component (IDEA-126045)
This commit is contained in:
@@ -20,6 +20,7 @@ import com.intellij.execution.Location;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.notification.NotificationGroup;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
||||
@@ -36,6 +37,8 @@ import com.intellij.ui.SystemNotifications;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.awt.*;
|
||||
import java.util.List;
|
||||
|
||||
@@ -74,6 +77,17 @@ public class TestsUIUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isMultipleSelectionImpossible(DataContext dataContext) {
|
||||
final Component component = PlatformDataKeys.CONTEXT_COMPONENT.getData(dataContext);
|
||||
if (component instanceof JTree) {
|
||||
final TreePath[] selectionPaths = ((JTree)component).getSelectionPaths();
|
||||
if (selectionPaths == null || selectionPaths.length <= 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Navigatable getOpenFileDescriptor(final AbstractTestProxy testProxy, final TestFrameworkRunningModel model) {
|
||||
final TestConsoleProperties testConsoleProperties = model.getProperties();
|
||||
return getOpenFileDescriptor(testProxy, testConsoleProperties,
|
||||
|
||||
@@ -22,16 +22,23 @@ import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.execution.testframework.AbstractTestProxy;
|
||||
import com.intellij.execution.testframework.TestTreeView;
|
||||
import com.intellij.execution.testframework.TestsUIUtil;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.ui.Tree;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
@@ -98,7 +105,7 @@ public class PatternConfigurationProducer extends JUnitConfigurationProducer {
|
||||
}
|
||||
|
||||
public static boolean isMultipleElementsSelected(ConfigurationContext context) {
|
||||
if (AbstractTestProxy.DATA_KEY.getData(context.getDataContext()) != null) return false;
|
||||
if (TestsUIUtil.isMultipleSelectionImpossible(context.getDataContext())) return false;
|
||||
final LinkedHashSet<String> classes = new LinkedHashSet<String>();
|
||||
final PsiElement[] elements = collectPatternElements(context, classes);
|
||||
if (elements != null && collectTestMembers(elements, false).size() > 1) {
|
||||
|
||||
+2
-1
@@ -27,6 +27,7 @@ import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.execution.junit.JUnitUtil;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.execution.testframework.AbstractTestProxy;
|
||||
import com.intellij.execution.testframework.TestsUIUtil;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
@@ -86,7 +87,7 @@ public class TestNGPatternConfigurationProducer extends TestNGConfigurationProdu
|
||||
}
|
||||
|
||||
public static boolean isMultipleElementsSelected(ConfigurationContext context) {
|
||||
if (AbstractTestProxy.DATA_KEY.getData(context.getDataContext()) != null) return false;
|
||||
if (TestsUIUtil.isMultipleSelectionImpossible(context.getDataContext())) return false;
|
||||
final LinkedHashSet<String> classes = new LinkedHashSet<String>();
|
||||
final PsiElement[] elements = collectPatternElements(context, classes);
|
||||
if (elements != null && collectTestMembers(elements).size() > 1) {
|
||||
|
||||
Reference in New Issue
Block a user