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); } }