allow to don't activate run tool window automatically after process start
authorNikolay Matveev <Nikolay.Matveev@jetbrains.com>
Tue, 8 Nov 2011 14:38:34 +0000 (18:38 +0400)
committerNikolay Matveev <Nikolay.Matveev@jetbrains.com>
Tue, 8 Nov 2011 16:58:28 +0000 (20:58 +0400)
platform/lang-impl/src/com/intellij/execution/RunContentExecutor.java

index 7a431d38937e621142ea765cc97112a9dc594bb6..9f98e18a7b65b7e886cbd69850e6ca1e4b7b7c35 100644 (file)
@@ -37,6 +37,7 @@ public class RunContentExecutor {
   private Runnable myAfterCompletion;
   private String myTitle = "Output";
   private String myHelpId = null;
+  private boolean myActivateToolWindow = true;
 
   public RunContentExecutor(Project project, ProcessHandler process) {
     myProject = project;
@@ -68,6 +69,11 @@ public class RunContentExecutor {
     return this;
   }
 
+  public RunContentExecutor withActivateToolWindow(boolean activateToolWindow) {
+    myActivateToolWindow = activateToolWindow;
+    return this;
+  }
+
   private ConsoleView createConsole(Project project, ProcessHandler processHandler) {
     TextConsoleBuilder consoleBuilder = TextConsoleBuilderFactory.getInstance().createBuilder(project);
     for (Filter filter : myFilterList) {
@@ -96,11 +102,9 @@ public class RunContentExecutor {
 
     ExecutionManager.getInstance(myProject).getContentManager().showRunContent(executor, descriptor);
 
-    ApplicationManager.getApplication().invokeLater(new Runnable() {
-      public void run() {
-        ToolWindowManager.getInstance(myProject).getToolWindow(ToolWindowId.RUN).activate(null);
-      }
-    });
+    if (myActivateToolWindow) {
+      activateToolWindow();
+    }
 
     if (myAfterCompletion != null) {
       myProcess.addProcessListener(new ProcessAdapter() {
@@ -113,6 +117,14 @@ public class RunContentExecutor {
     myProcess.startNotify();
   }
 
+  public void activateToolWindow() {
+    ApplicationManager.getApplication().invokeLater(new Runnable() {
+      public void run() {
+        ToolWindowManager.getInstance(myProject).getToolWindow(ToolWindowId.RUN).activate(null);
+      }
+    });
+  }
+
   private static JComponent createConsolePanel(ConsoleView view, ActionGroup actions) {
     JPanel panel = new JPanel();
     panel.setLayout(new BorderLayout());