package jetbrains.mps.execution.configurations.implementation.plugin.plugin; /*Generated by MPS */ import jetbrains.mps.execution.api.configurations.BaseMpsBeforeTaskProvider; import com.intellij.openapi.util.Key; import java.util.List; import org.jetbrains.mps.openapi.model.SNodeReference; import com.intellij.openapi.project.Project; import com.intellij.execution.runners.ExecutionEnvironment; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.baseLanguage.closures.runtime.Wrappers; import jetbrains.mps.ide.project.ProjectHelper; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; public class MakeDeployScripts_BeforeTask extends BaseMpsBeforeTaskProvider<MakeDeployScripts_BeforeTask.MakeDeployScripts_BeforeTask_RunTask> { private static final Key<MakeDeployScripts_BeforeTask.MakeDeployScripts_BeforeTask_RunTask> KEY = Key.create("jetbrains.mps.execution.configurations.implementation.plugin.plugin.MakeDeployScripts_BeforeTask"); public MakeDeployScripts_BeforeTask() { super("Make deploy scripts", "Make deploy scripts"); } protected MakeDeployScripts_BeforeTask.MakeDeployScripts_BeforeTask_RunTask createTaskImpl() { return new MakeDeployScripts_BeforeTask.MakeDeployScripts_BeforeTask_RunTask(); } public Key<MakeDeployScripts_BeforeTask.MakeDeployScripts_BeforeTask_RunTask> getId() { return KEY; } public static class MakeDeployScripts_BeforeTask_RunTask extends BaseMpsBeforeTaskProvider.BaseMpsBeforeRunTask<MakeDeployScripts_BeforeTask.MakeDeployScripts_BeforeTask_RunTask> { private List<SNodeReference> myPlugins; public MakeDeployScripts_BeforeTask_RunTask() { super(KEY); } public boolean configure(List<SNodeReference> plugins) { myPlugins = plugins; return true; } public boolean execute(Project project, ExecutionEnvironment environment) { if (ListSequence.fromList(myPlugins).isEmpty()) { return false; } final Wrappers._T<DeployScript> script = new Wrappers._T<DeployScript>(); final jetbrains.mps.project.Project mpsProject = ProjectHelper.toMPSProject(project); ApplicationManager.getApplication().invokeAndWait(new Runnable() { public void run() { mpsProject.getModelAccess().executeCommand(new Runnable() { public void run() { script.value = new DeployScript(mpsProject, myPlugins); } }); } }, ModalityState.NON_MODAL); String deployScriptLocation = script.value.make(); if ((deployScriptLocation == null || deployScriptLocation.length() == 0)) { script.value.dispose(); return false; } ScriptsHolder.put(environment, script.value); return true; } } }