From 864f442db13ea5474fe08630aec5fcb06cb7fe88 Mon Sep 17 00:00:00 2001 From: Carl-Robert Linnupuu Date: Mon, 13 May 2024 19:04:46 +0300 Subject: [PATCH] fix: landing page hyperlinks --- .../ui/ChatToolWindowScrollablePanel.java | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ChatToolWindowScrollablePanel.java b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ChatToolWindowScrollablePanel.java index 515d0777..70ca682d 100644 --- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ChatToolWindowScrollablePanel.java +++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ui/ChatToolWindowScrollablePanel.java @@ -1,5 +1,8 @@ package ee.carlrobert.codegpt.toolwindow.chat.ui; +import static javax.swing.event.HyperlinkEvent.EventType.ACTIVATED; + +import com.intellij.openapi.options.ShowSettingsUtil; import com.intellij.openapi.roots.ui.componentsList.components.ScrollablePanel; import com.intellij.openapi.roots.ui.componentsList.layout.VerticalStackLayout; import com.intellij.ui.JBColor; @@ -8,7 +11,9 @@ import ee.carlrobert.codegpt.credentials.CredentialsStore; import ee.carlrobert.codegpt.credentials.CredentialsStore.CredentialKey; import ee.carlrobert.codegpt.settings.GeneralSettings; import ee.carlrobert.codegpt.settings.service.ServiceType; +import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTServiceConfigurable; import ee.carlrobert.codegpt.ui.UIUtil; +import ee.carlrobert.codegpt.util.ApplicationUtil; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -33,14 +38,25 @@ public class ChatToolWindowScrollablePanel extends ScrollablePanel { var panel = new ResponsePanel() .addContent(UIUtil.createTextPane(""" - -

- It looks like you haven't configured your API key yet. Visit the CodeGPT settings to do so. -

-

- Don't have an account? Sign up for free access to all open-source models. -

- """, false, UIUtil::handleHyperlinkClicked)); + +

+ It looks like you haven't configured your API key yet. Visit the CodeGPT settings to do so. +

+

+ Don't have an account? Sign up for free access to all open-source models. +

+ """, + false, + event -> { + if (ACTIVATED.equals(event.getEventType()) + && "#OPEN_SETTINGS".equals(event.getDescription())) { + ShowSettingsUtil.getInstance().showSettingsDialog( + ApplicationUtil.findCurrentProject(), + CodeGPTServiceConfigurable.class); + } else { + UIUtil.handleHyperlinkClicked(event); + } + })); panel.setBorder(JBUI.Borders.customLine(JBColor.border(), 1, 0, 0, 0)); add(panel); }