mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-52423 Bring back option for Run/Debug to pop up configurations
This commit is contained in:
@@ -52,4 +52,8 @@ public interface RunnerAndConfigurationSettings {
|
||||
void setTemporary(boolean temporary);
|
||||
|
||||
Factory<RunnerAndConfigurationSettings> createFactory();
|
||||
|
||||
void setEditBeforeRun(boolean b);
|
||||
|
||||
boolean isEditBeforeRun();
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class ProgramRunnerUtil {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!RunManagerImpl.canRunConfiguration(configuration, executor)) {
|
||||
if (!RunManagerImpl.canRunConfiguration(configuration, executor) || RunManagerImpl.isEditBeforeRun(configuration)) {
|
||||
final boolean result = RunDialog.editConfiguration(project, configuration, "Edit configuration", executor.getActionName(), executor.getIcon());
|
||||
if (!result) {
|
||||
return;
|
||||
|
||||
@@ -48,6 +48,8 @@ public abstract class RunManagerEx extends RunManager {
|
||||
|
||||
public abstract void setTemporaryConfiguration(RunnerAndConfigurationSettings tempConfiguration);
|
||||
|
||||
public abstract void setEditBeforeRun(RunConfiguration settings, boolean edit);
|
||||
|
||||
public abstract RunManagerConfig getConfig();
|
||||
|
||||
@NotNull
|
||||
|
||||
+22
-9
@@ -18,6 +18,7 @@ package com.intellij.execution.impl;
|
||||
|
||||
import com.intellij.execution.BeforeRunTask;
|
||||
import com.intellij.execution.BeforeRunTaskProvider;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.UnknownRunConfiguration;
|
||||
@@ -55,10 +56,12 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
private JPanel myWholePanel;
|
||||
|
||||
private JPanel myStepsPanel;
|
||||
private JCheckBox myShowSettingsBeforeRunCheckBox;
|
||||
private Map<Key<? extends BeforeRunTask>, BeforeRunTask> myStepsBeforeLaunch;
|
||||
private final Map<Key<? extends BeforeRunTask>, StepBeforeLaunchRow> myStepBeforeLaunchRows = new THashMap<Key<? extends BeforeRunTask>, StepBeforeLaunchRow>();
|
||||
|
||||
private boolean myStoreProjectConfiguration;
|
||||
private boolean myEditBeforeRun;
|
||||
|
||||
private final ConfigurationSettingsEditor myEditor;
|
||||
|
||||
@@ -78,7 +81,7 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
final BeforeRunTaskProvider<BeforeRunTask>[] providers = Extensions.getExtensions(BeforeRunTaskProvider.EXTENSION_POINT_NAME,
|
||||
runConfiguration.getProject());
|
||||
myStepsPanel.removeAll();
|
||||
if (providers.length == 0 || runConfiguration instanceof UnknownRunConfiguration) {
|
||||
if (runConfiguration instanceof UnknownRunConfiguration) {
|
||||
myStepsPanel.setVisible(false);
|
||||
}
|
||||
else {
|
||||
@@ -92,17 +95,25 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
}
|
||||
}
|
||||
|
||||
if (!stepsRows.isEmpty()) {
|
||||
myStepsPanel.setLayout(new GridLayout(stepsRows.size(), 1));
|
||||
for (StepBeforeLaunchRow stepRow : stepsRows) {
|
||||
myStepsPanel.add(stepRow);
|
||||
}
|
||||
}
|
||||
else {
|
||||
myStepsPanel.setVisible(false);
|
||||
myStepsPanel.setLayout(new GridLayout(stepsRows.size(), 1));
|
||||
for (StepBeforeLaunchRow stepRow : stepsRows) {
|
||||
myStepsPanel.add(stepRow);
|
||||
}
|
||||
}
|
||||
|
||||
myEditBeforeRun = settings.isEditBeforeRun();
|
||||
myShowSettingsBeforeRunCheckBox = new JCheckBox(ExecutionBundle.message("configuration.edit.before.run"));
|
||||
myShowSettingsBeforeRunCheckBox.setEnabled(!(runConfiguration instanceof UnknownRunConfiguration));
|
||||
myShowSettingsBeforeRunCheckBox.setSelected(myEditBeforeRun);
|
||||
myShowSettingsBeforeRunCheckBox.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
myEditBeforeRun = myShowSettingsBeforeRunCheckBox.isSelected();
|
||||
}
|
||||
});
|
||||
myShowSettingsBeforeRunCheckBox.setVisible(!settings.isTemplate());
|
||||
myStepsPanel.add(myShowSettingsBeforeRunCheckBox);
|
||||
|
||||
myStoreProjectConfiguration = runManager.isConfigurationShared(settings);
|
||||
myCbStoreProjectConfiguration.setEnabled(!(runConfiguration instanceof UnknownRunConfiguration));
|
||||
myCbStoreProjectConfiguration.setSelected(myStoreProjectConfiguration);
|
||||
@@ -111,6 +122,7 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
myStoreProjectConfiguration = myCbStoreProjectConfiguration.isSelected();
|
||||
}
|
||||
});
|
||||
|
||||
myCbStoreProjectConfiguration.setVisible(!settings.isTemplate());
|
||||
}
|
||||
|
||||
@@ -151,6 +163,7 @@ public class ConfigurationSettingsEditorWrapper extends SettingsEditor<RunnerAnd
|
||||
final RunManagerImpl runManager = RunManagerImpl.getInstanceImpl(runConfiguration.getProject());
|
||||
runManager.setBeforeRunTasks(runConfiguration, myStepsBeforeLaunch);
|
||||
runManager.shareConfiguration(runConfiguration, myStoreProjectConfiguration);
|
||||
runManager.setEditBeforeRun(runConfiguration, myEditBeforeRun);
|
||||
}
|
||||
|
||||
public Map<Key<? extends BeforeRunTask>, BeforeRunTask> getStepsBeforeLaunch() {
|
||||
|
||||
@@ -619,6 +619,15 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable,
|
||||
setActiveConfiguration(tempConfiguration);
|
||||
}
|
||||
|
||||
public static boolean isEditBeforeRun(@NotNull final RunnerAndConfigurationSettings configuration) {
|
||||
return configuration.isEditBeforeRun();
|
||||
}
|
||||
|
||||
public void setEditBeforeRun(@NotNull final RunConfiguration configuration, final boolean edit) {
|
||||
final RunnerAndConfigurationSettings settings = getSettings(configuration);
|
||||
if (settings != null) settings.setEditBeforeRun(edit);
|
||||
}
|
||||
|
||||
public void setActiveConfiguration(final RunnerAndConfigurationSettings configuration) {
|
||||
setSelectedConfiguration(configuration);
|
||||
}
|
||||
|
||||
+17
-1
@@ -57,6 +57,9 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
protected static final String DUMMY_ELEMENT_NANE = "dummy";
|
||||
@NonNls
|
||||
private static final String TEMPORARY_ATTRIBUTE = "temporary";
|
||||
@NonNls
|
||||
private static final String EDIT_BEFORE_RUN = "editBeforeRun";
|
||||
|
||||
|
||||
/** for compatibility */
|
||||
@NonNls
|
||||
@@ -73,6 +76,7 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
private List<Element> myUnloadedConfigurationPerRunnerSettings = null;
|
||||
|
||||
private boolean myTemporary;
|
||||
private boolean myEditBeforeRun;
|
||||
|
||||
public RunnerAndConfigurationSettingsImpl(RunManagerImpl manager) {
|
||||
myManager = manager;
|
||||
@@ -122,6 +126,16 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
return myConfiguration.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEditBeforeRun(boolean b) {
|
||||
myEditBeforeRun = b;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditBeforeRun() {
|
||||
return myEditBeforeRun;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private ConfigurationFactory getFactory(final Element element) {
|
||||
final String typeName = element.getAttributeValue(CONFIGURATION_TYPE_ATTRIBUTE);
|
||||
@@ -130,9 +144,9 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
}
|
||||
|
||||
public void readExternal(Element element) throws InvalidDataException {
|
||||
|
||||
myIsTemplate = Boolean.valueOf(element.getAttributeValue(TEMPLATE_FLAG_ATTRIBUTE)).booleanValue();
|
||||
myTemporary = Boolean.valueOf(element.getAttributeValue(TEMPORARY_ATTRIBUTE)).booleanValue() || TEMP_CONFIGURATION.equals(element.getName());
|
||||
myEditBeforeRun = Boolean.valueOf(element.getAttributeValue(EDIT_BEFORE_RUN)).booleanValue();
|
||||
|
||||
final ConfigurationFactory factory = getFactory(element);
|
||||
if (factory == null) return;
|
||||
@@ -192,6 +206,8 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
}
|
||||
element.setAttribute(CONFIGURATION_TYPE_ATTRIBUTE, factory.getType().getId());
|
||||
element.setAttribute(FACTORY_NAME_ATTRIBUTE, factory.getName());
|
||||
|
||||
if (isEditBeforeRun()) element.setAttribute(EDIT_BEFORE_RUN, String.valueOf(true));
|
||||
if (myTemporary) {
|
||||
element.setAttribute(TEMPORARY_ATTRIBUTE, Boolean.toString(myTemporary));
|
||||
}
|
||||
|
||||
@@ -301,3 +301,4 @@ export.test.results.open.browser=O&pen exported file in browser
|
||||
export.test.results.dialog.title=Export Test Results
|
||||
export.test.results.output.path.empty=Output path is empty
|
||||
export.test.results.output.filename.empty=Output file name is empty
|
||||
configuration.edit.before.run=Show settings
|
||||
|
||||
Reference in New Issue
Block a user