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
This commit is contained in:
Anton Makeev
2019-05-16 15:07:28 +03:00
committed by intellij-monorepo-bot
parent 5fe1e4177a
commit c35a8093e0
@@ -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<ToolWindow> 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);
}
});
});