mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-15 18:13:02 +00:00
46 lines
2.1 KiB
Java
46 lines
2.1 KiB
Java
package ee.carlrobert.codegpt.toolwindow;
|
|
|
|
import com.intellij.openapi.project.DumbAware;
|
|
import com.intellij.openapi.project.Project;
|
|
import com.intellij.openapi.wm.ToolWindow;
|
|
import com.intellij.openapi.wm.ToolWindowFactory;
|
|
import com.intellij.ui.content.ContentManagerEvent;
|
|
import com.intellij.ui.content.ContentManagerListener;
|
|
import ee.carlrobert.codegpt.state.AccountDetailsState;
|
|
import ee.carlrobert.codegpt.client.ClientProvider;
|
|
import ee.carlrobert.codegpt.toolwindow.chat.ChatToolWindowPanel;
|
|
import ee.carlrobert.codegpt.toolwindow.conversations.ConversationsToolWindow;
|
|
import javax.swing.JComponent;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public class ProjectToolWindowFactory implements ToolWindowFactory, DumbAware {
|
|
|
|
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
|
|
var conversationsToolWindow = new ConversationsToolWindow(project);
|
|
var chatToolWindowPanel = new ChatToolWindowPanel(project);
|
|
|
|
addContent(toolWindow, chatToolWindowPanel, "Chat");
|
|
addContent(toolWindow, conversationsToolWindow.getContent(), "Conversation History");
|
|
toolWindow.addContentManagerListener(new ContentManagerListener() {
|
|
public void selectionChanged(@NotNull ContentManagerEvent event) {
|
|
var content = event.getContent();
|
|
if ("Conversation History".equals(content.getTabName()) && content.isSelected()) {
|
|
conversationsToolWindow.refresh();
|
|
} else if ("Chat".equals(content.getTabName()) && content.isSelected()) {
|
|
ClientProvider.getBillingClient()
|
|
.getCreditUsageAsync(creditUsage -> {
|
|
var accountDetails = AccountDetailsState.getInstance();
|
|
accountDetails.totalAmountGranted = creditUsage.getTotalGranted();
|
|
accountDetails.totalAmountUsed = creditUsage.getTotalUsed();
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
public void addContent(ToolWindow toolWindow, JComponent panel, String displayName) {
|
|
var contentManager = toolWindow.getContentManager();
|
|
var content = contentManager.getFactory().createContent(panel, displayName, false);
|
|
contentManager.addContent(content);
|
|
}
|
|
}
|