mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-236390 Implement new UI for editing run configuration settings
introducing RunnerAndConfigurationSettingsEditor to edit RunnerAndConfigurationSettings directly GitOrigin-RevId: 238e4760f8e3e71f672bb70fe3038782bc7cda4a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6417ff2711
commit
3c141fc7c7
+2
-2
@@ -185,10 +185,10 @@ public class ConfigurationSettingsEditor extends CompositeSettingsEditor<RunnerA
|
||||
return null;
|
||||
}
|
||||
|
||||
public ConfigurationSettingsEditor(@NotNull RunnerAndConfigurationSettings settings) {
|
||||
public ConfigurationSettingsEditor(@NotNull RunnerAndConfigurationSettings settings, SettingsEditor<RunConfiguration> configurationEditor) {
|
||||
super(settings.createFactory());
|
||||
|
||||
myConfigurationEditor = (SettingsEditor<RunConfiguration>)settings.getConfiguration().getConfigurationEditor();
|
||||
myConfigurationEditor = configurationEditor;
|
||||
myConfigurationEditor.addSettingsEditorListener(editor -> fireEditorStateChanged());
|
||||
Disposer.register(this, myConfigurationEditor);
|
||||
myConfiguration = settings.getConfiguration();
|
||||
|
||||
+13
-7
@@ -7,6 +7,8 @@ import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.WithoutOwnBeforeRunSteps;
|
||||
import com.intellij.execution.runners.ProgramRunner;
|
||||
import com.intellij.execution.ui.FragmentedSettingsEditor;
|
||||
import com.intellij.execution.ui.RunnerAndConfigurationSettingsEditor;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
@@ -54,8 +56,8 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
return myEditor.selectTabAndGetEditor(editorClass);
|
||||
}
|
||||
|
||||
public ConfigurationSettingsEditorWrapper(@NotNull RunnerAndConfigurationSettings settings) {
|
||||
myEditor = new ConfigurationSettingsEditor(settings);
|
||||
private ConfigurationSettingsEditorWrapper(@NotNull RunnerAndConfigurationSettings settings, SettingsEditor<RunConfiguration> configurationEditor) {
|
||||
myEditor = new ConfigurationSettingsEditor(settings, configurationEditor);
|
||||
myEditor.addSettingsEditorListener(editor -> fireStepsBeforeRunChanged());
|
||||
Disposer.register(this, myEditor);
|
||||
myBeforeRunStepsPanel = new BeforeRunStepsPanel(this);
|
||||
@@ -91,14 +93,10 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
myDisclaimerPanel.setVisible(settings.isTemplate() && ProjectManager.getInstance().getOpenProjects().length != 0);
|
||||
}
|
||||
|
||||
public boolean isFragmented() {
|
||||
return myEditor.isFragmented();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
protected JComponent createEditor() {
|
||||
if (isFragmented()) {
|
||||
if (myEditor.isFragmented()) {
|
||||
return myEditor.getComponent();
|
||||
}
|
||||
myComponentPlace.setLayout(new BorderLayout());
|
||||
@@ -193,4 +191,12 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static SettingsEditor<RunnerAndConfigurationSettings> createWrapper(@NotNull RunnerAndConfigurationSettings settings) {
|
||||
@SuppressWarnings("unchecked") SettingsEditor<RunConfiguration> configurationEditor =
|
||||
(SettingsEditor<RunConfiguration>)settings.getConfiguration().getConfigurationEditor();
|
||||
return configurationEditor instanceof FragmentedSettingsEditor<?>
|
||||
? new RunnerAndConfigurationSettingsEditor(settings, configurationEditor)
|
||||
: new ConfigurationSettingsEditorWrapper(settings, configurationEditor);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -98,7 +98,7 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
@Nullable Boolean myDotIdeaStorageVcsIgnored = null; // used as cache; null means not initialized yet
|
||||
|
||||
private SingleConfigurationConfigurable(@NotNull RunnerAndConfigurationSettings settings, @Nullable Executor executor) {
|
||||
super(new ConfigurationSettingsEditorWrapper(settings), settings);
|
||||
super(ConfigurationSettingsEditorWrapper.createWrapper(settings), settings);
|
||||
|
||||
myProject = settings.getConfiguration().getProject();
|
||||
myExecutor = executor;
|
||||
@@ -675,7 +675,7 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
myIsAllowRunningInParallel = configuration.isAllowRunningInParallel();
|
||||
myIsAllowRunningInParallelCheckBox.setEnabled(isManagedRunConfiguration);
|
||||
myIsAllowRunningInParallelCheckBox.setSelected(myIsAllowRunningInParallel);
|
||||
myIsAllowRunningInParallelCheckBox.setVisible(!((ConfigurationSettingsEditorWrapper)getEditor()).isFragmented() &&
|
||||
myIsAllowRunningInParallelCheckBox.setVisible(getEditor() instanceof ConfigurationSettingsEditorWrapper &&
|
||||
settings.getFactory().getSingletonPolicy().isPolicyConfigurable());
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class TemplateConfigurable extends BaseRCSettingsConfigurable {
|
||||
private final RunnerAndConfigurationSettings myTemplate;
|
||||
|
||||
TemplateConfigurable(RunnerAndConfigurationSettings template) {
|
||||
super(new ConfigurationSettingsEditorWrapper(template), template);
|
||||
super(ConfigurationSettingsEditorWrapper.createWrapper(template), template);
|
||||
myTemplate = template;
|
||||
}
|
||||
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
// 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.ui;
|
||||
|
||||
import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.options.SettingsEditor;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class RunnerAndConfigurationSettingsEditor extends SettingsEditor<RunnerAndConfigurationSettings> {
|
||||
|
||||
private final SettingsEditor<RunConfiguration> myConfigurationEditor;
|
||||
|
||||
public RunnerAndConfigurationSettingsEditor(RunnerAndConfigurationSettings settings,
|
||||
SettingsEditor<RunConfiguration> configurationEditor) {
|
||||
super(settings.createFactory());
|
||||
myConfigurationEditor = configurationEditor;
|
||||
myConfigurationEditor.addSettingsEditorListener(editor -> fireEditorStateChanged());
|
||||
Disposer.register(this, myConfigurationEditor);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resetEditorFrom(@NotNull RunnerAndConfigurationSettings s) {
|
||||
myConfigurationEditor.resetFrom(s.getConfiguration());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyEditorTo(@NotNull RunnerAndConfigurationSettings s) throws ConfigurationException {
|
||||
myConfigurationEditor.applyTo(s.getConfiguration());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull JComponent createEditor() {
|
||||
return myConfigurationEditor.getComponent();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user