use of com.intellij.execution.BeforeRunTask in project intellij-community by JetBrains.
the class CompoundRunConfigurationSettingsEditor method canBeAdded.
private boolean canBeAdded(@NotNull RunConfiguration candidate, @NotNull final CompoundRunConfiguration root) {
if (candidate.getType() == root.getType() && candidate.getName().equals(root.getName()))
return false;
List<BeforeRunTask> tasks = myRunManager.getBeforeRunTasks(candidate);
for (BeforeRunTask task : tasks) {
if (task instanceof RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask) {
RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask runTask = (RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask) task;
RunnerAndConfigurationSettings settings = runTask.getSettings();
if (settings != null) {
if (!canBeAdded(settings.getConfiguration(), root))
return false;
}
}
}
if (candidate instanceof CompoundRunConfiguration) {
Set<RunConfiguration> set = ((CompoundRunConfiguration) candidate).getSetToRun();
for (RunConfiguration configuration : set) {
if (!canBeAdded(configuration, root))
return false;
}
}
return true;
}
use of com.intellij.execution.BeforeRunTask in project azure-tools-for-java by Microsoft.
the class DeployFunctionAppAction method actionPerformed.
@Override
protected void actionPerformed(final NodeActionEvent nodeActionEvent) throws AzureCmdException {
final RunManagerEx manager = RunManagerEx.getInstanceEx(project);
final RunnerAndConfigurationSettings settings = getRunConfigurationSettings(manager);
if (RunDialog.editConfiguration(project, settings, message("function.deploy.configuration.title"), DefaultRunExecutor.getRunExecutorInstance())) {
final List<BeforeRunTask> tasks = new ArrayList<>(manager.getBeforeRunTasks(settings.getConfiguration()));
manager.addConfiguration(settings, false, tasks, false);
manager.setSelectedConfiguration(settings);
ProgramRunnerUtil.executeConfiguration(project, settings, DefaultRunExecutor.getRunExecutorInstance());
}
}
use of com.intellij.execution.BeforeRunTask in project azure-tools-for-java by Microsoft.
the class RunFunctionAction method runConfiguration.
private void runConfiguration(Module module) {
// todo: investigate when will module be null
if (module == null) {
return;
}
final Project project = module.getProject();
final RunManagerEx manager = RunManagerEx.getInstanceEx(project);
final ConfigurationFactory factory = new FunctionRunConfigurationFactory(configType);
final RunnerAndConfigurationSettings settings = RunConfigurationUtils.getOrCreateRunConfigurationSettings(module, manager, factory);
if (RunDialog.editConfiguration(project, settings, message("function.run.configuration.title"), DefaultRunExecutor.getRunExecutorInstance())) {
final List<BeforeRunTask> tasks = new ArrayList<>(manager.getBeforeRunTasks(settings.getConfiguration()));
manager.addConfiguration(settings, false, tasks, false);
manager.setSelectedConfiguration(settings);
ProgramRunnerUtil.executeConfiguration(project, settings, DefaultRunExecutor.getRunExecutorInstance());
}
}
use of com.intellij.execution.BeforeRunTask in project azure-tools-for-java by Microsoft.
the class BeforeRunTaskUtils method addTask.
private static synchronized <T extends BeforeRunTask<?>> void addTask(@Nonnull ConfigurationSettingsEditorWrapper editor, List<? extends T> tasks, T task, RunConfiguration config) {
if (tasks.isEmpty()) {
task.setEnabled(true);
final RunManagerEx manager = RunManagerEx.getInstanceEx(config.getProject());
final List<BeforeRunTask> tasksFromConfig = new ArrayList<>(manager.getBeforeRunTasks(config));
// need to add the before run task back to runConfiguration since for the create scenario:
// the before run task editor will reset tasks in runConfiguration, that's the reason why
// here we need to add the task here
tasksFromConfig.add(task);
manager.setBeforeRunTasks(config, tasksFromConfig);
editor.addBeforeLaunchStep(task);
} else {
for (final T t : tasks) {
t.setEnabled(true);
}
}
}
use of com.intellij.execution.BeforeRunTask in project azure-tools-for-java by Microsoft.
the class MavenRunTaskUtil method addMavenPackageBeforeRunTask.
/**
* Add Maven package goal into the run configuration's before run task.
*/
public static void addMavenPackageBeforeRunTask(RunConfiguration runConfiguration) {
final RunManagerEx manager = RunManagerEx.getInstanceEx(runConfiguration.getProject());
if (isMavenProject(runConfiguration.getProject())) {
List<BeforeRunTask> tasks = new ArrayList<>(manager.getBeforeRunTasks(runConfiguration));
if (MavenRunTaskUtil.shouldAddMavenPackageTask(tasks, runConfiguration.getProject())) {
MavenBeforeRunTask task = new MavenBeforeRunTask();
task.setEnabled(true);
task.setProjectPath(runConfiguration.getProject().getBasePath() + File.separator + MavenConstants.POM_XML);
task.setGoal(MAVEN_TASK_PACKAGE);
tasks.add(task);
manager.setBeforeRunTasks(runConfiguration, tasks);
}
}
}
Aggregations