mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-05 23:42:18 +00:00
1.0.8 - Fix ToolWindow NPE, Closes #3
This commit is contained in:
parent
56c27031f5
commit
7b76308c34
7 changed files with 19 additions and 28 deletions
|
|
@ -3,7 +3,6 @@ package ee.carlrobert.chatgpt.ide.action;
|
|||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import ee.carlrobert.chatgpt.client.ApiClient;
|
||||
import ee.carlrobert.chatgpt.ide.toolwindow.ToolWindowService;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -19,15 +18,13 @@ public class AskAction extends AnAction {
|
|||
public void actionPerformed(@NotNull AnActionEvent event) {
|
||||
var project = event.getProject();
|
||||
if (project != null) {
|
||||
var toolWindow = ToolWindowManager.getInstance(project).getToolWindow("ChatGPT");
|
||||
if (toolWindow != null) {
|
||||
toolWindow.show();
|
||||
toolWindow.setTitle("");
|
||||
var toolWindowService = ApplicationManager.getApplication().getService(ToolWindowService.class);
|
||||
ApiClient.getInstance().clearQueries();
|
||||
toolWindowService.removeAll();
|
||||
toolWindowService.paintLandingView();
|
||||
}
|
||||
ApiClient.getInstance().clearQueries();
|
||||
var toolWindowService = ApplicationManager.getApplication().getService(ToolWindowService.class);
|
||||
var toolWindow = toolWindowService.getToolWindow(project);
|
||||
toolWindow.show();
|
||||
toolWindow.setTitle("");
|
||||
toolWindowService.removeAll();
|
||||
toolWindowService.paintLandingView();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ public abstract class BaseAction extends AnAction {
|
|||
var project = event.getProject();
|
||||
var editor = event.getData(PlatformDataKeys.EDITOR);
|
||||
if (editor != null && project != null) {
|
||||
ApiClient.getInstance().clearQueries();
|
||||
var toolWindowService = ApplicationManager.getApplication().getService(ToolWindowService.class);
|
||||
var selectedText = editor.getSelectionModel().getSelectedText();
|
||||
ApiClient.getInstance().clearQueries();
|
||||
initToolWindow(toolWindowService.getToolWindow());
|
||||
initToolWindow(toolWindowService.getToolWindow(project));
|
||||
toolWindowService.removeAll();
|
||||
toolWindowService.paintUserMessage(selectedText);
|
||||
toolWindowService.sendMessage(getPrompt(selectedText), project, null);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package ee.carlrobert.chatgpt.ide.toolwindow;
|
|||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ui.componentsList.components.ScrollablePanel;
|
||||
import com.intellij.openapi.wm.ToolWindow;
|
||||
import com.intellij.ui.components.JBScrollPane;
|
||||
import ee.carlrobert.chatgpt.ide.toolwindow.components.TextArea;
|
||||
import java.awt.Adjustable;
|
||||
|
|
@ -24,15 +23,13 @@ import org.jetbrains.annotations.NotNull;
|
|||
public class ChatGptToolWindow {
|
||||
|
||||
private final Project project;
|
||||
private final ToolWindow toolWindow;
|
||||
private JPanel chatGptToolWindowContent;
|
||||
private JScrollPane scrollPane;
|
||||
private JTextArea textArea;
|
||||
private JScrollPane textAreaScrollPane;
|
||||
|
||||
public ChatGptToolWindow(@NotNull Project project, @NotNull ToolWindow toolWindow) {
|
||||
public ChatGptToolWindow(@NotNull Project project) {
|
||||
this.project = project;
|
||||
this.toolWindow = toolWindow;
|
||||
}
|
||||
|
||||
public void handleSubmit() {
|
||||
|
|
@ -72,7 +69,7 @@ public class ChatGptToolWindow {
|
|||
@Override
|
||||
public JScrollBar createVerticalScrollBar() {
|
||||
JScrollBar verticalScrollBar = new JScrollPane.ScrollBar(1);
|
||||
verticalScrollBar.setPreferredSize(new Dimension(0,0));
|
||||
verticalScrollBar.setPreferredSize(new Dimension(0, 0));
|
||||
return verticalScrollBar;
|
||||
}
|
||||
};
|
||||
|
|
@ -96,7 +93,6 @@ public class ChatGptToolWindow {
|
|||
scrollPane.setViewportBorder(null);
|
||||
|
||||
var toolWindowService = ApplicationManager.getApplication().getService(ToolWindowService.class);
|
||||
toolWindowService.setToolWindow(toolWindow);
|
||||
toolWindowService.setScrollablePanel(scrollablePanel);
|
||||
toolWindowService.paintLandingView();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class ChatGptToolWindowFactory implements ToolWindowFactory, DumbAware {
|
|||
public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
|
||||
var content = ApplicationManager.getApplication()
|
||||
.getService(ContentFactory.class)
|
||||
.createContent(new ChatGptToolWindow(project, toolWindow).getContent(), "", false);
|
||||
.createContent(new ChatGptToolWindow(project).getContent(), "", false);
|
||||
toolWindow.getContentManager().addContent(content);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.intellij.openapi.options.ShowSettingsUtil;
|
|||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ui.componentsList.components.ScrollablePanel;
|
||||
import com.intellij.openapi.wm.ToolWindow;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import ee.carlrobert.chatgpt.EmptyCallback;
|
||||
import ee.carlrobert.chatgpt.client.ApiClient;
|
||||
import ee.carlrobert.chatgpt.ide.settings.SettingsConfigurable;
|
||||
|
|
@ -24,23 +25,19 @@ import javax.swing.ImageIcon;
|
|||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingConstants;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ToolWindowService {
|
||||
|
||||
private ScrollablePanel scrollablePanel;
|
||||
private ToolWindow toolWindow;
|
||||
private boolean isLandingViewVisible;
|
||||
|
||||
public void setScrollablePanel(ScrollablePanel scrollablePanel) {
|
||||
this.scrollablePanel = scrollablePanel;
|
||||
}
|
||||
|
||||
public void setToolWindow(ToolWindow toolWindow) {
|
||||
this.toolWindow = toolWindow;
|
||||
}
|
||||
|
||||
public ToolWindow getToolWindow() {
|
||||
return toolWindow;
|
||||
public ToolWindow getToolWindow(@NotNull Project project) {
|
||||
return ToolWindowManager.getInstance(project).getToolWindow("ChatGPT");
|
||||
}
|
||||
|
||||
public void paintUserMessage(String userMessage) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue