OpenShift Origin - API change to support separate tool window for OSh3 servers

This commit is contained in:
Michael Golubev
2016-10-06 20:33:05 +02:00
parent 132aa8f787
commit 460fe79b3e
4 changed files with 21 additions and 5 deletions
@@ -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;
}
}
@@ -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<RemoteServer<?>> getRemoteServers() {
return ContainerUtil.filter(RemoteServersManager.getInstance().getServers(), server -> server.getType().getCustomToolWindowId() == null);
return getRemoteServersByToolWindowId(null);
}
}
@@ -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<RemoteServer<?>> getRemoteServersByToolWindowId(@Nullable String toolWindowId) {
return ContainerUtil.filter(RemoteServersManager.getInstance().getServers(),
server -> getRemoteServerToolWindowId(server) == toolWindowId);
}
}
@@ -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);
}
}