mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-06 08:02:13 +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
|
|
@ -4,7 +4,7 @@ plugins {
|
|||
}
|
||||
|
||||
group = "ee.carlrobert"
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<change-notes>
|
||||
<![CDATA[
|
||||
<ul>
|
||||
<li><b>1.0.8</b> Migrate to Java 17, fix ToolWindow NPE</li>
|
||||
<li><b>1.0.7</b> Code refactoring, add readme</li>
|
||||
<li><b>1.0.6</b> Display proper message for insufficient quota</li>
|
||||
<li><b>1.0.5</b> Replace TextField with TextArea, remove Tahoma font, increase response max token size</li>
|
||||
|
|
@ -54,7 +55,7 @@
|
|||
<applicationService serviceImplementation="ee.carlrobert.chatgpt.ide.settings.SettingsState"/>
|
||||
<applicationService serviceImplementation="ee.carlrobert.chatgpt.ide.toolwindow.ToolWindowService"/>
|
||||
<applicationService serviceImplementation="ee.carlrobert.chatgpt.ide.notification.NotificationService"/>
|
||||
<toolWindow id="ChatGPT" secondary="true" icon="AllIcons.General.Modified" anchor="right"
|
||||
<toolWindow id="ChatGPT" icon="Icons.DefaultIcon" anchor="right"
|
||||
factoryClass="ee.carlrobert.chatgpt.ide.toolwindow.ChatGptToolWindowFactory"/>
|
||||
|
||||
<notificationGroup id="ChatGPT-Empty-API-Key"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue