ExecutionUtil: problem with balloons fixed

This commit is contained in:
Anton Makeev
2010-07-01 13:05:14 +04:00
parent 19561df92a
commit ad89dbd07e
9 changed files with 21 additions and 23 deletions
@@ -69,6 +69,7 @@ import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
@@ -1743,7 +1744,7 @@ public abstract class DebugProcessImpl implements DebugProcess {
if (runProfile != null) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ExecutionUtil.handleExecutionError(myProject, runProfile, e);
ExecutionUtil.handleExecutionError(myProject, ToolWindowId.DEBUG, runProfile, e);
}
});
}
@@ -39,18 +39,17 @@ public class ExecutionUtil {
private ExecutionUtil() {
}
public static void handleExecutionError(Project project, @NotNull String taskName, ExecutionException e) {
handleExecutionError(project, ToolWindowId.MESSAGES_WINDOW, taskName, e);
}
public static void handleExecutionError(final Project project, @NotNull final RunProfile runProfile, final ExecutionException e) {
handleExecutionError(project, runProfile.getName(), e);
public static void handleExecutionError(@NotNull Project project,
@NotNull String toolWindowId,
@NotNull RunProfile runProfile,
@NotNull ExecutionException e) {
handleExecutionError(project, toolWindowId, runProfile.getName(), e);
}
public static void handleExecutionError(@NotNull final Project project,
@NotNull String toolWindowId,
@NotNull String taskName,
@NotNull final ExecutionException e) {
@NotNull ExecutionException e) {
if (e instanceof RunCanceledByUserException) return;
String error = e.getMessage();
@@ -65,7 +64,7 @@ public class ExecutionUtil {
listener = new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
public void hyperlinkUpdate(HyperlinkEvent event) {
PropertiesComponent.getInstance(project).setValue("dynamic.classpath", "true");
}
};
@@ -98,7 +98,7 @@ public abstract class GenericProgramRunner<Settings extends JDOMExternalizable>
}
}
catch (ExecutionException e) {
ExecutionUtil.handleExecutionError(project, profile, e);
ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), profile, e);
}
}
};
@@ -77,7 +77,7 @@ public class ProgramRunnerUtil {
runner.execute(executor, new ExecutionEnvironment(runner, configuration, project));
}
catch (ExecutionException e) {
ExecutionUtil.handleExecutionError(project, configuration.getConfiguration(), e);
ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), configuration.getConfiguration(), e);
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.plugins.groovy.gant;
import com.intellij.execution.CantRunException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.openapi.module.Module;
@@ -46,7 +47,7 @@ public class GantRunner extends GroovyScriptRunner {
}
@Override
public boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, final Project project) {
public boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, Executor executor, final Project project) {
if (!(GantUtils.getSDKInstallPath(module, project).length() > 0)) {
int result = Messages
.showOkCancelDialog("Gant is not configured. Do you want to configure it?", "Configure Gant SDK",
@@ -16,10 +16,7 @@
package org.jetbrains.plugins.groovy.gradle;
import com.intellij.compiler.options.CompileStepBeforeRun;
import com.intellij.execution.CantRunException;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Location;
import com.intellij.execution.RunManagerEx;
import com.intellij.execution.*;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.openapi.module.Module;
@@ -147,7 +144,7 @@ public class GradleScriptType extends GroovyScriptType {
}
@Override
public boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, final Project project) throws ExecutionException {
public boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, Executor executor, final Project project) throws ExecutionException {
if (GradleLibraryManager.getSdkHome(module, project) == null) {
int result = Messages
.showOkCancelDialog("Gradle is not configured. Do you want to configure it?", "Configure Gradle SDK",
@@ -17,8 +17,8 @@
package org.jetbrains.plugins.groovy.runner;
import com.intellij.execution.CantRunException;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.execution.runners.ExecutionUtil;
@@ -29,7 +29,6 @@ import com.intellij.openapi.vfs.CharsetToolkit;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.encoding.EncodingManager;
import com.intellij.openapi.vfs.encoding.EncodingProjectManager;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
import com.intellij.openapi.roots.ui.configuration.ClasspathEditor;
import com.intellij.openapi.project.Project;
@@ -48,13 +47,13 @@ public class DefaultGroovyScriptRunner extends GroovyScriptRunner {
}
@Override
public boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, final Project project) throws ExecutionException {
public boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, Executor executor, final Project project) throws ExecutionException {
if (module == null) {
throw new ExecutionException("Module is not specified");
}
if (LibrariesUtil.getGroovyHomePath(module) == null) {
ExecutionUtil.handleExecutionError(project, profile, new ExecutionException("Groovy is not configured"));
ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), profile, new ExecutionException("Groovy is not configured"));
ModulesConfigurator.showDialog(module.getProject(), module.getName(), ClasspathEditor.NAME, false);
return false;
}
@@ -164,7 +164,7 @@ public class GroovyScriptRunConfiguration extends ModuleBasedConfiguration<RunCo
}
final Module module = getModule();
if (!scriptRunner.ensureRunnerConfigured(module, this, getProject())) {
if (!scriptRunner.ensureRunnerConfigured(module, this, executor, getProject())) {
return null;
}
@@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.runner;
import com.intellij.execution.CantRunException;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.openapi.module.Module;
@@ -42,7 +43,7 @@ public abstract class GroovyScriptRunner {
public abstract boolean isValidModule(@NotNull Module module);
public abstract boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, final Project project) throws ExecutionException;
public abstract boolean ensureRunnerConfigured(@Nullable Module module, RunProfile profile, Executor executor, final Project project) throws ExecutionException;
public abstract void configureCommandLine(JavaParameters params, @Nullable Module module, boolean tests, VirtualFile script,
GroovyScriptRunConfiguration configuration) throws CantRunException;