mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
AppCode:Run Configurations: executable target support (OC-3083)
AppCode:Instruments: refactored runner, now uses same base as a normal runner, tests support (OC-2373)
This commit is contained in:
@@ -97,6 +97,9 @@ public abstract class RunConfigurationBase extends UserDataHolderBase implements
|
||||
@Nullable ConfigurationPerRunnerSettings configurationPerRunnerSettings) throws RuntimeConfigurationException {
|
||||
}
|
||||
|
||||
public void checkSettingsBeforeRun() throws RuntimeConfigurationException {
|
||||
}
|
||||
|
||||
public boolean canRunOn(@NotNull ExecutionTarget target) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -74,14 +74,14 @@ public class ProgramRunnerUtil {
|
||||
}
|
||||
|
||||
if (!RunManagerImpl.canRunConfiguration(configuration, executor) || (showSettings && RunManagerImpl.isEditBeforeRun(configuration))) {
|
||||
if (!RunDialog.editConfiguration(project, configuration, "Edit configuration", executor.getActionName(), executor.getIcon())) {
|
||||
if (!RunDialog.editConfiguration(project, configuration, "Edit configuration", executor)) {
|
||||
return;
|
||||
}
|
||||
|
||||
while (!RunManagerImpl.canRunConfiguration(configuration, executor)) {
|
||||
if (0 == Messages.showYesNoDialog(project, "Configuration is still incorrect. Do you want to edit it again?", "Change Configuration Settings",
|
||||
"Edit", "Continue Anyway", Messages.getErrorIcon())) {
|
||||
if (!RunDialog.editConfiguration(project, configuration, "Edit configuration", executor.getActionName(), executor.getIcon())) {
|
||||
if (!RunDialog.editConfiguration(project, configuration, "Edit configuration", executor)) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
|
||||
+1
-1
@@ -216,7 +216,7 @@ public class ChooseRunConfigurationPopup {
|
||||
assert executor != null;
|
||||
|
||||
PropertiesComponent.getInstance().setValue("run.configuration.edit.ad", Boolean.toString(true));
|
||||
if (RunDialog.editConfiguration(project, configuration, "Edit configuration settings", executor.getActionName(), executor.getIcon())) {
|
||||
if (RunDialog.editConfiguration(project, configuration, "Edit configuration settings", executor)) {
|
||||
RunManagerEx.getInstanceEx(project).setSelectedConfiguration(configuration);
|
||||
ProgramRunnerUtil.executeConfiguration(project, configuration, executor, ExecutionTargetManager.getActiveTarget(project), false);
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ class RunConfigurable extends BaseConfigurable {
|
||||
final Object userObject = node.getUserObject();
|
||||
if (userObject instanceof RunnerAndConfigurationSettingsImpl) {
|
||||
final SingleConfigurationConfigurable<RunConfiguration> configurationConfigurable =
|
||||
SingleConfigurationConfigurable.editSettings((RunnerAndConfigurationSettings)userObject);
|
||||
SingleConfigurationConfigurable.editSettings((RunnerAndConfigurationSettings)userObject, null);
|
||||
installUpdateListeners(configurationConfigurable);
|
||||
node.setUserObject(configurationConfigurable);
|
||||
updateRightPanel(configurationConfigurable);
|
||||
@@ -847,7 +847,7 @@ class RunConfigurable extends BaseConfigurable {
|
||||
|
||||
private SingleConfigurationConfigurable<RunConfiguration> createNewConfiguration(final RunnerAndConfigurationSettings settings, final DefaultMutableTreeNode node) {
|
||||
final SingleConfigurationConfigurable<RunConfiguration> configurationConfigurable =
|
||||
SingleConfigurationConfigurable.editSettings(settings);
|
||||
SingleConfigurationConfigurable.editSettings(settings, null);
|
||||
installUpdateListeners(configurationConfigurable);
|
||||
DefaultMutableTreeNode nodeToAdd = new DefaultMutableTreeNode(configurationConfigurable);
|
||||
node.add(nodeToAdd);
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.wm.ex.IdeFocusTraversalPolicy;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
@@ -98,15 +99,15 @@ public class RunDialog extends DialogWrapper implements RunConfigurable.RunDialo
|
||||
}
|
||||
|
||||
public static boolean editConfiguration(final Project project, final RunnerAndConfigurationSettings configuration, final String title) {
|
||||
return editConfiguration(project, configuration, title, null, null);
|
||||
return editConfiguration(project, configuration, title, null);
|
||||
}
|
||||
|
||||
public static boolean editConfiguration(final Project project, final RunnerAndConfigurationSettings configuration, final String title, final String okText, final Icon okIcon) {
|
||||
final SingleConfigurationConfigurable<RunConfiguration> configurable = SingleConfigurationConfigurable.editSettings(configuration);
|
||||
public static boolean editConfiguration(final Project project, final RunnerAndConfigurationSettings configuration, final String title, @Nullable final Executor executor) {
|
||||
final SingleConfigurationConfigurable<RunConfiguration> configurable = SingleConfigurationConfigurable.editSettings(configuration, executor);
|
||||
final SingleConfigurableEditor dialog = new SingleConfigurableEditor(project, configurable) {
|
||||
{
|
||||
if (okIcon != null) setOKButtonIcon(okIcon);
|
||||
if (okText != null) setOKButtonText(okText);
|
||||
if (executor != null) setOKButtonText(executor.getActionName());
|
||||
if (executor != null) setOKButtonIcon(executor.getIcon());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+3
@@ -292,6 +292,9 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
runConfigurationBase.checkRunnerSettings(runner, myRunnerSettings.get(runner), myConfigurationPerRunnerSettings.get(runner));
|
||||
}
|
||||
}
|
||||
if (executor != null) {
|
||||
runConfigurationBase.checkSettingsBeforeRun();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+13
-5
@@ -27,6 +27,7 @@ import com.intellij.openapi.options.SettingsEditorConfigurable;
|
||||
import com.intellij.openapi.options.SettingsEditorListener;
|
||||
import com.intellij.ui.DocumentAdapter;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
@@ -41,6 +42,8 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
extends SettingsEditorConfigurable<RunnerAndConfigurationSettings> {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.execution.impl.SingleConfigurationConfigurable");
|
||||
private final PlainDocument myNameDocument = new PlainDocument();
|
||||
@Nullable private Executor myExecutor;
|
||||
|
||||
private ValidationResult myLastValidationResult = null;
|
||||
private boolean myValidationResultValid = false;
|
||||
private MyValidatableComponent myComponent;
|
||||
@@ -49,8 +52,10 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
private final Icon myIcon;
|
||||
private final boolean myBrokenConfiguration;
|
||||
|
||||
private SingleConfigurationConfigurable(RunnerAndConfigurationSettings settings) {
|
||||
|
||||
private SingleConfigurationConfigurable(RunnerAndConfigurationSettings settings, @Nullable Executor executor) {
|
||||
super(new ConfigurationSettingsEditorWrapper(settings), settings);
|
||||
myExecutor = executor;
|
||||
|
||||
final Config configuration = (Config)getSettings().getConfiguration();
|
||||
myDisplayName = getSettings().getName();
|
||||
@@ -73,15 +78,18 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
});
|
||||
}
|
||||
|
||||
public static <Config extends RunConfiguration> SingleConfigurationConfigurable<Config> editSettings(RunnerAndConfigurationSettings settings) {
|
||||
SingleConfigurationConfigurable<Config> configurable = new SingleConfigurationConfigurable<Config>(settings);
|
||||
public static <Config extends RunConfiguration> SingleConfigurationConfigurable<Config> editSettings(RunnerAndConfigurationSettings settings,
|
||||
@Nullable Executor executor) {
|
||||
SingleConfigurationConfigurable<Config> configurable = new SingleConfigurationConfigurable<Config>(settings, executor);
|
||||
configurable.reset();
|
||||
return configurable;
|
||||
}
|
||||
|
||||
public void apply() throws ConfigurationException {
|
||||
getSettings().setName(getNameText());
|
||||
RunnerAndConfigurationSettings settings = getSettings();
|
||||
settings.setName(getNameText());
|
||||
super.apply();
|
||||
RunManagerImpl.getInstanceImpl(getConfiguration().getProject()).fireRunConfigurationChanged(settings);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
@@ -107,7 +115,7 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
RunnerAndConfigurationSettings snapshot = getSnapshot();
|
||||
if (snapshot != null) {
|
||||
snapshot.setName(getNameText());
|
||||
snapshot.checkSettings();
|
||||
snapshot.checkSettings(myExecutor);
|
||||
for (ProgramRunner runner : RunnerRegistry.getInstance().getRegisteredRunners()) {
|
||||
for (Executor executor : ExecutorRegistry.getInstance().getRegisteredExecutors()) {
|
||||
if (runner.canRun(executor.getId(), snapshot.getConfiguration())) {
|
||||
|
||||
Reference in New Issue
Block a user