From c35a8093e0afc6bbcf0803cfd54382d47ff8c7a5 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Thu, 16 May 2019 13:58:20 +0200 Subject: [PATCH] Gradle: show the Gradle tool window when a first Gradle project is attached to help user get oriented It's now also consistent with Ant/Maven tool windows behavior GitOrigin-RevId: 0de15c620170cb9ac7993e8409ce05fed33a9c7b --- .../service/ui/ExternalToolWindowManager.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalToolWindowManager.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalToolWindowManager.java index f32591cf1cc8..bfae80ba7f4e 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalToolWindowManager.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalToolWindowManager.java @@ -14,6 +14,7 @@ import com.intellij.openapi.wm.ToolWindow; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.openapi.wm.impl.ToolWindowHeadlessManagerImpl; import com.intellij.openapi.wm.impl.ToolWindowImpl; +import com.intellij.util.Consumer; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -38,9 +39,15 @@ public class ExternalToolWindowManager { settings.subscribe(new ExternalSystemSettingsListenerAdapter() { @Override public void onProjectsLinked(@NotNull Collection linked) { - ToolWindow toolWindow = getToolWindow(project, manager.getSystemId()); + + Consumer activate = (toolWindow) -> toolWindow.setAvailable(true, () -> { + final boolean shouldShow = settings.getLinkedProjectsSettings().size() == 1; + if (shouldShow) toolWindow.show(null); + }); + + final ToolWindow toolWindow = getToolWindow(project, manager.getSystemId()); if (toolWindow != null) { - toolWindow.setAvailable(true, null); + activate.consume(toolWindow); } else { StartupManager.getInstance(project).runWhenProjectIsInitialized((DumbAwareRunnable)() -> { @@ -51,7 +58,7 @@ public class ExternalToolWindowManager { if (project.isDisposed()) return; ToolWindow toolWindow1 = getToolWindow(project, manager.getSystemId()); if (toolWindow1 != null) { - toolWindow1.setAvailable(true, null); + activate.consume(toolWindow1); } }); });