mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-244301 [JUnit] Implement new UI for editing run configuration settings
JUnitSettingsEditor initial GitOrigin-RevId: 17677b69082fb558a001f9fd3e9d73f36455533c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
81fba80b5e
commit
85b6a868f2
+1
-2
@@ -2,7 +2,6 @@
|
||||
package com.intellij.execution.application;
|
||||
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.JavaRunConfigurationExtensionManager;
|
||||
import com.intellij.execution.ui.*;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.ui.EditorTextField;
|
||||
@@ -16,7 +15,7 @@ import static com.intellij.execution.ui.CommandLinePanel.setMinimumWidth;
|
||||
public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase<ApplicationConfiguration> {
|
||||
|
||||
public JavaApplicationSettingsEditor(ApplicationConfiguration configuration) {
|
||||
super(configuration, JavaRunConfigurationExtensionManager.getInstance());
|
||||
super(configuration);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@ import com.intellij.compiler.options.CompileStepBeforeRun;
|
||||
import com.intellij.diagnostic.logging.LogsFragment;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.JavaRunConfigurationBase;
|
||||
import com.intellij.execution.configuration.RunConfigurationExtensionsManager;
|
||||
import com.intellij.execution.JavaRunConfigurationExtensionManager;
|
||||
import com.intellij.execution.ui.*;
|
||||
import com.intellij.ide.macro.MacrosDialog;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -24,8 +24,8 @@ import static com.intellij.openapi.util.text.StringUtil.isNotEmpty;
|
||||
public abstract class JavaSettingsEditorBase<T extends JavaRunConfigurationBase> extends RunConfigurationFragmentedEditor<T> {
|
||||
protected final Project myProject;
|
||||
|
||||
public JavaSettingsEditorBase(T runConfiguration, RunConfigurationExtensionsManager extensionsManager) {
|
||||
super(runConfiguration, extensionsManager);
|
||||
public JavaSettingsEditorBase(T runConfiguration) {
|
||||
super(runConfiguration, JavaRunConfigurationExtensionManager.getInstance());
|
||||
myProject = runConfiguration.getProject();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.intellij.ui.SimpleTextAttributes;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -89,8 +90,8 @@ public final class CommonJavaFragments {
|
||||
}
|
||||
|
||||
public static <S extends ModuleBasedConfiguration<?,?>> SettingsEditorFragment<S, ModuleClasspathCombo> moduleClasspath(
|
||||
ModuleClasspathCombo.Item option, Predicate<S> getter, BiConsumer<S, Boolean> setter) {
|
||||
ModuleClasspathCombo comboBox = new ModuleClasspathCombo(option);
|
||||
@Nullable ModuleClasspathCombo.Item option, Predicate<S> getter, BiConsumer<S, Boolean> setter) {
|
||||
ModuleClasspathCombo comboBox = option == null ? new ModuleClasspathCombo() : new ModuleClasspathCombo(option);
|
||||
String name = ExecutionBundle.message("application.configuration.use.classpath.and.jdk.of.module");
|
||||
comboBox.getAccessibleContext().setAccessibleName(name);
|
||||
setMinimumWidth(comboBox, 400);
|
||||
@@ -99,16 +100,22 @@ public final class CommonJavaFragments {
|
||||
new SettingsEditorFragment<>("module.classpath", name, ExecutionBundle.message("group.java.options"), comboBox, 10,
|
||||
(s, c) -> {
|
||||
comboBox.reset(s);
|
||||
option.myOptionValue = getter.test(s);
|
||||
if (option != null) {
|
||||
option.myOptionValue = getter.test(s);
|
||||
}
|
||||
},
|
||||
(s, c) -> {
|
||||
if (comboBox.isVisible()) {
|
||||
comboBox.applyTo(s);
|
||||
setter.accept(s, option.myOptionValue);
|
||||
if (option != null) {
|
||||
setter.accept(s, option.myOptionValue);
|
||||
}
|
||||
}
|
||||
else {
|
||||
s.setModule(s.getDefaultModule());
|
||||
setter.accept(s, false);
|
||||
if (option != null) {
|
||||
setter.accept(s, false);
|
||||
}
|
||||
}
|
||||
},
|
||||
s -> s.getDefaultModule() != s.getConfigurationModule().getModule() &&
|
||||
|
||||
@@ -32,6 +32,10 @@ abstract class DefaultJreSelector {
|
||||
fun fromModuleDependencies(moduleComboBox: ModuleDescriptionsComboBox, productionOnly: Boolean): DefaultJreSelector
|
||||
= SdkFromModuleDependencies(moduleComboBox, ModuleDescriptionsComboBox::getSelectedModule, {productionOnly})
|
||||
|
||||
@JvmStatic
|
||||
fun fromModuleDependencies(moduleComboBox: ModuleClasspathCombo, productionOnly: Boolean): DefaultJreSelector
|
||||
= SdkFromModuleDependencies(moduleComboBox, ModuleClasspathCombo::getSelectedModule, {productionOnly})
|
||||
|
||||
@JvmStatic
|
||||
fun fromSourceRootsDependencies(moduleComboBox: ModulesComboBox, classSelector: EditorTextFieldWithBrowseButton): DefaultJreSelector
|
||||
= SdkFromSourceRootDependencies(moduleComboBox, ModulesComboBox::getSelectedModule, classSelector.childComponent)
|
||||
|
||||
@@ -1335,6 +1335,8 @@ ide.require.transaction.for.model.changes.description=Whether write action can o
|
||||
|
||||
ide.new.run.config=true
|
||||
ide.new.run.config.description=New Run Configuration UI
|
||||
ide.new.run.config.junit=false
|
||||
ide.new.run.config.junit.description=New JUnit Configuration UI
|
||||
select.run.configuration.from.context=true
|
||||
select.run.configuration.from.context.description=Select run configuration when run from context (gutter icon, popup menu)
|
||||
run.popup.move.folders.to.top=false
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.intellij.execution.configuration.EnvironmentVariablesComponent;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.executors.DefaultRunExecutor;
|
||||
import com.intellij.execution.junit2.configuration.JUnitConfigurable;
|
||||
import com.intellij.execution.junit2.configuration.JUnitSettingsEditor;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.execution.junit2.ui.properties.JUnitConsoleProperties;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
@@ -30,6 +31,7 @@ import com.intellij.openapi.util.DifferenceFilter;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.io.FileUtilRt;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.ClassUtil;
|
||||
@@ -163,6 +165,9 @@ public class JUnitConfiguration extends JavaTestConfigurationWithDiscoverySuppor
|
||||
@Override
|
||||
@NotNull
|
||||
public SettingsEditor<? extends RunConfiguration> getConfigurationEditor() {
|
||||
if (Registry.is("ide.new.run.config.junit", false)) {
|
||||
return new JUnitSettingsEditor(this);
|
||||
}
|
||||
SettingsEditorGroup<JUnitConfiguration> group = new SettingsEditorGroup<>();
|
||||
group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new JUnitConfigurable(getProject()));
|
||||
JavaRunConfigurationExtensionManager.getInstance().appendEditors(this, group);
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.execution.junit2.configuration;
|
||||
|
||||
import com.intellij.execution.application.JavaSettingsEditorBase;
|
||||
import com.intellij.execution.junit.JUnitConfiguration;
|
||||
import com.intellij.execution.ui.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class JUnitSettingsEditor extends JavaSettingsEditorBase<JUnitConfiguration> {
|
||||
|
||||
public JUnitSettingsEditor(JUnitConfiguration runConfiguration) {
|
||||
super(runConfiguration);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull SettingsEditorFragment<JUnitConfiguration, ModuleClasspathCombo> createClasspathCombo() {
|
||||
return CommonJavaFragments.moduleClasspath(null, null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void customizeFragments(List<SettingsEditorFragment<JUnitConfiguration, ?>> fragments,
|
||||
ModuleClasspathCombo classpathCombo,
|
||||
CommonParameterFragments<JUnitConfiguration> commonParameterFragments) {
|
||||
DefaultJreSelector jreSelector = DefaultJreSelector.fromModuleDependencies(classpathCombo, false);
|
||||
SettingsEditorFragment<JUnitConfiguration, JrePathEditor> jrePath = CommonJavaFragments.createJrePath(jreSelector);
|
||||
fragments.add(jrePath);
|
||||
fragments.add(createShortenClasspath(classpathCombo, jrePath));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user