Search in sources :

Example 26 with BeforeRunTask

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;
}
Also used : BeforeRunTask(com.intellij.execution.BeforeRunTask) RunConfigurationBeforeRunProvider(com.intellij.execution.impl.RunConfigurationBeforeRunProvider) RunConfiguration(com.intellij.execution.configurations.RunConfiguration) RunnerAndConfigurationSettings(com.intellij.execution.RunnerAndConfigurationSettings)

Example 27 with BeforeRunTask

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());
    }
}
Also used : BeforeRunTask(com.intellij.execution.BeforeRunTask) RunManagerEx(com.intellij.execution.RunManagerEx) ArrayList(java.util.ArrayList) RunnerAndConfigurationSettings(com.intellij.execution.RunnerAndConfigurationSettings)

Example 28 with BeforeRunTask

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());
    }
}
Also used : BeforeRunTask(com.intellij.execution.BeforeRunTask) Project(com.intellij.openapi.project.Project) RunManagerEx(com.intellij.execution.RunManagerEx) ConfigurationFactory(com.intellij.execution.configurations.ConfigurationFactory) FunctionRunConfigurationFactory(com.microsoft.azure.toolkit.intellij.function.runner.localrun.FunctionRunConfigurationFactory) ArrayList(java.util.ArrayList) RunnerAndConfigurationSettings(com.intellij.execution.RunnerAndConfigurationSettings) FunctionRunConfigurationFactory(com.microsoft.azure.toolkit.intellij.function.runner.localrun.FunctionRunConfigurationFactory)

Example 29 with BeforeRunTask

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);
        }
    }
}
Also used : BuildArtifactsBeforeRunTask(com.intellij.packaging.impl.run.BuildArtifactsBeforeRunTask) BeforeRunTask(com.intellij.execution.BeforeRunTask) MavenBeforeRunTask(org.jetbrains.idea.maven.tasks.MavenBeforeRunTask) ExternalSystemBeforeRunTask(com.intellij.openapi.externalSystem.service.execution.ExternalSystemBeforeRunTask) RunManagerEx(com.intellij.execution.RunManagerEx) ArrayList(java.util.ArrayList)

Example 30 with BeforeRunTask

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);
        }
    }
}
Also used : MavenBeforeRunTask(org.jetbrains.idea.maven.tasks.MavenBeforeRunTask) BeforeRunTask(com.intellij.execution.BeforeRunTask) RunManagerEx(com.intellij.execution.RunManagerEx) ArrayList(java.util.ArrayList) MavenBeforeRunTask(org.jetbrains.idea.maven.tasks.MavenBeforeRunTask)

Aggregations

BeforeRunTask (com.intellij.execution.BeforeRunTask)37 RunManagerEx (com.intellij.execution.RunManagerEx)24 ArrayList (java.util.ArrayList)22 RunnerAndConfigurationSettings (com.intellij.execution.RunnerAndConfigurationSettings)17 ConfigurationFactory (com.intellij.execution.configurations.ConfigurationFactory)13 Project (com.intellij.openapi.project.Project)12 MavenBeforeRunTask (org.jetbrains.idea.maven.tasks.MavenBeforeRunTask)6 RunConfiguration (com.intellij.execution.configurations.RunConfiguration)4 BeforeRunTaskProvider (com.intellij.execution.BeforeRunTaskProvider)2 UnknownRunConfiguration (com.intellij.execution.configurations.UnknownRunConfiguration)2 ConfigurationSettingsEditorWrapper (com.intellij.execution.impl.ConfigurationSettingsEditorWrapper)2 DataContext (com.intellij.openapi.actionSystem.DataContext)2 ExternalSystemBeforeRunTask (com.intellij.openapi.externalSystem.service.execution.ExternalSystemBeforeRunTask)2 Module (com.intellij.openapi.module.Module)2 Key (com.intellij.openapi.util.Key)2 BuildArtifactsBeforeRunTask (com.intellij.packaging.impl.run.BuildArtifactsBeforeRunTask)2 FunctionDeploymentConfigurationFactory (com.microsoft.azure.toolkit.intellij.function.runner.deploy.FunctionDeploymentConfigurationFactory)2 FunctionRunConfigurationFactory (com.microsoft.azure.toolkit.intellij.function.runner.localrun.FunctionRunConfigurationFactory)2 AzureOperation (com.microsoft.azure.toolkit.lib.common.operation.AzureOperation)2 LinkedList (java.util.LinkedList)2