ProxyAI/src/main/java/ee/carlrobert/codegpt/ide/toolwindow/ContentManagerService.java
2023-03-15 23:31:02 +00:00

36 lines
1.2 KiB
Java

package ee.carlrobert.codegpt.ide.toolwindow;
import static java.util.Objects.requireNonNull;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManager;
import java.util.Arrays;
import java.util.Optional;
import org.jetbrains.annotations.NotNull;
public class ContentManagerService {
public void displayChatTab(@NotNull Project project) {
var toolWindow = requireNonNull(ToolWindowManager.getInstance(project).getToolWindow("CodeGPT"));
toolWindow.show();
var contentManager = toolWindow.getContentManager();
tryFindChatTabContent(contentManager).ifPresentOrElse(
contentManager::setSelectedContent,
() -> contentManager.setSelectedContent(requireNonNull(contentManager.getContent(0)))
);
}
public Optional<Content> tryFindChatTabContent(ContentManager contentManager) {
return Arrays.stream(contentManager.getContents())
.filter(content -> "Chat".equals(content.getTabName()))
.findFirst();
}
public boolean isChatTabSelected(ContentManager contentManager) {
return tryFindChatTabContent(contentManager)
.filter(contentManager::isSelected)
.isPresent();
}
}