From 460fe79b3e1a12c22dfb8fd4df7e3561b6723d79 Mon Sep 17 00:00:00 2001 From: Michael Golubev Date: Thu, 6 Oct 2016 20:21:48 +0200 Subject: [PATCH] OpenShift Origin - API change to support separate tool window for OSh3 servers --- .../configuration/ServerConfiguration.java | 6 ++++++ .../ui/DefaultRemoteServersViewContribution.java | 5 +---- .../runtime/ui/RemoteServersViewContribution.java | 13 +++++++++++++ .../impl/runtime/ui/RemoteServersViewImpl.java | 2 +- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/platform/remote-servers/api/src/com/intellij/remoteServer/configuration/ServerConfiguration.java b/platform/remote-servers/api/src/com/intellij/remoteServer/configuration/ServerConfiguration.java index 255bdb834480..cd4c661c0f38 100644 --- a/platform/remote-servers/api/src/com/intellij/remoteServer/configuration/ServerConfiguration.java +++ b/platform/remote-servers/api/src/com/intellij/remoteServer/configuration/ServerConfiguration.java @@ -1,10 +1,16 @@ package com.intellij.remoteServer.configuration; import com.intellij.openapi.components.PersistentStateComponent; +import org.jetbrains.annotations.Nullable; /** * @author nik */ public abstract class ServerConfiguration { public abstract PersistentStateComponent getSerializer(); + + @Nullable + public String getCustomToolWindowId() { + return null; + } } diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/DefaultRemoteServersViewContribution.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/DefaultRemoteServersViewContribution.java index f3c44c154990..a2ea8089463e 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/DefaultRemoteServersViewContribution.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/DefaultRemoteServersViewContribution.java @@ -17,12 +17,9 @@ package com.intellij.remoteServer.impl.runtime.ui; import com.intellij.ide.util.treeView.AbstractTreeNode; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Condition; import com.intellij.remoteServer.configuration.RemoteServer; -import com.intellij.remoteServer.configuration.RemoteServersManager; import com.intellij.remoteServer.impl.runtime.ui.tree.TreeBuilderBase; import com.intellij.ui.treeStructure.Tree; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -82,6 +79,6 @@ public class DefaultRemoteServersViewContribution extends RemoteServersViewContr @Override public List> getRemoteServers() { - return ContainerUtil.filter(RemoteServersManager.getInstance().getServers(), server -> server.getType().getCustomToolWindowId() == null); + return getRemoteServersByToolWindowId(null); } } diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewContribution.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewContribution.java index 72f6768cba32..5a59656748d7 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewContribution.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewContribution.java @@ -18,10 +18,13 @@ package com.intellij.remoteServer.impl.runtime.ui; import com.intellij.ide.util.treeView.AbstractTreeNode; import com.intellij.openapi.project.Project; import com.intellij.remoteServer.configuration.RemoteServer; +import com.intellij.remoteServer.configuration.RemoteServersManager; import com.intellij.remoteServer.impl.runtime.ui.tree.ServersTreeNodeSelector; import com.intellij.remoteServer.impl.runtime.ui.tree.ServersTreeStructure; import com.intellij.remoteServer.runtime.ServerConnection; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -58,4 +61,14 @@ public abstract class RemoteServersViewContribution extends RemoteServersViewCon } }; } + + public static String getRemoteServerToolWindowId(RemoteServer server) { + String serverToolWindowId = server.getConfiguration().getCustomToolWindowId(); + return serverToolWindowId != null ? serverToolWindowId : server.getType().getCustomToolWindowId(); + } + + protected static List> getRemoteServersByToolWindowId(@Nullable String toolWindowId) { + return ContainerUtil.filter(RemoteServersManager.getInstance().getServers(), + server -> getRemoteServerToolWindowId(server) == toolWindowId); + } } diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewImpl.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewImpl.java index e4bd3b0f7cd8..df77826516ae 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewImpl.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/RemoteServersViewImpl.java @@ -52,7 +52,7 @@ public class RemoteServersViewImpl extends RemoteServersView { } private static String getToolWindowId(ServerConnection connection) { - String customToolWindowId = connection.getServer().getType().getCustomToolWindowId(); + String customToolWindowId = RemoteServersViewContribution.getRemoteServerToolWindowId(connection.getServer()); return StringUtil.notNullize(customToolWindowId, DefaultServersToolWindowManager.WINDOW_ID); } }