mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-12 14:10:29 +00:00
fix: long-running tasks on EDT when initializing forms
This commit is contained in:
parent
7bee59a90e
commit
fedbe11fd2
9 changed files with 75 additions and 36 deletions
|
|
@ -2,6 +2,7 @@ package ee.carlrobert.codegpt.settings.service.anthropic;
|
|||
|
||||
import static ee.carlrobert.codegpt.credentials.CredentialsStore.CredentialKey.ANTHROPIC_API_KEY;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.ui.components.JBPasswordField;
|
||||
import com.intellij.ui.components.JBTextField;
|
||||
import com.intellij.util.ui.FormBuilder;
|
||||
|
|
@ -10,6 +11,7 @@ import ee.carlrobert.codegpt.CodeGPTBundle;
|
|||
import ee.carlrobert.codegpt.credentials.CredentialsStore;
|
||||
import ee.carlrobert.codegpt.ui.UIUtil;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class AnthropicSettingsForm {
|
||||
|
|
@ -21,7 +23,10 @@ public class AnthropicSettingsForm {
|
|||
public AnthropicSettingsForm(AnthropicSettingsState settings) {
|
||||
apiKeyField = new JBPasswordField();
|
||||
apiKeyField.setColumns(30);
|
||||
apiKeyField.setText(CredentialsStore.getCredential(ANTHROPIC_API_KEY));
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
var apiKey = CredentialsStore.getCredential(ANTHROPIC_API_KEY);
|
||||
SwingUtilities.invokeLater(() -> apiKeyField.setText(apiKey));
|
||||
});
|
||||
apiVersionField = new JBTextField(settings.getApiVersion(), 35);
|
||||
modelField = new JBTextField(settings.getModel(), 35);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ee.carlrobert.codegpt.settings.service.azure;
|
|||
|
||||
import static ee.carlrobert.codegpt.ui.UIUtil.withEmptyLeftBorder;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.ui.TitledSeparator;
|
||||
import com.intellij.ui.components.JBPasswordField;
|
||||
import com.intellij.ui.components.JBRadioButton;
|
||||
|
|
@ -15,6 +16,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class AzureSettingsForm {
|
||||
|
|
@ -38,15 +40,20 @@ public class AzureSettingsForm {
|
|||
settings.isUseAzureActiveDirectoryAuthentication());
|
||||
azureApiKeyField = new JBPasswordField();
|
||||
azureApiKeyField.setColumns(30);
|
||||
azureApiKeyField.setText(CredentialsStore.getCredential(CredentialKey.AZURE_OPENAI_API_KEY));
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
var apiKey = CredentialsStore.getCredential(CredentialKey.AZURE_OPENAI_API_KEY);
|
||||
SwingUtilities.invokeLater(() -> azureApiKeyField.setText(apiKey));
|
||||
});
|
||||
azureApiKeyFieldPanel = UI.PanelFactory.panel(azureApiKeyField)
|
||||
.withLabel(CodeGPTBundle.get("settingsConfigurable.shared.apiKey.label"))
|
||||
.resizeX(false)
|
||||
.createPanel();
|
||||
azureActiveDirectoryTokenField = new JBPasswordField();
|
||||
azureActiveDirectoryTokenField.setColumns(30);
|
||||
azureActiveDirectoryTokenField.setText(
|
||||
CredentialsStore.getCredential(CredentialKey.AZURE_ACTIVE_DIRECTORY_TOKEN));
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
var apiKey = CredentialsStore.getCredential(CredentialKey.AZURE_ACTIVE_DIRECTORY_TOKEN);
|
||||
SwingUtilities.invokeLater(() -> azureActiveDirectoryTokenField.setText(apiKey));
|
||||
});
|
||||
azureActiveDirectoryTokenFieldPanel = UI.PanelFactory.panel(azureActiveDirectoryTokenField)
|
||||
.withLabel(CodeGPTBundle.get("settingsConfigurable.service.azure.bearerToken.label"))
|
||||
.resizeX(false)
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import ee.carlrobert.codegpt.completions.llama.LlamaServerAgent;
|
|||
import ee.carlrobert.codegpt.completions.llama.LlamaServerStartupParams;
|
||||
import ee.carlrobert.codegpt.completions.llama.PromptTemplate;
|
||||
import ee.carlrobert.codegpt.credentials.CredentialsStore;
|
||||
import ee.carlrobert.codegpt.credentials.CredentialsStore.CredentialKey;
|
||||
import ee.carlrobert.codegpt.settings.service.llama.LlamaSettingsState;
|
||||
import ee.carlrobert.codegpt.ui.OverlayUtil;
|
||||
import ee.carlrobert.codegpt.ui.UIUtil;
|
||||
|
|
@ -40,6 +41,7 @@ import javax.swing.JButton;
|
|||
import javax.swing.JComponent;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class LlamaServerPreferencesForm {
|
||||
|
|
@ -86,7 +88,10 @@ public class LlamaServerPreferencesForm {
|
|||
baseHostField = new JBTextField(settings.getBaseHost(), 30);
|
||||
apiKeyField = new JBPasswordField();
|
||||
apiKeyField.setColumns(30);
|
||||
apiKeyField.setText(CredentialsStore.getCredential(LLAMA_API_KEY));
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
var apiKey = CredentialsStore.getCredential(CredentialKey.LLAMA_API_KEY);
|
||||
SwingUtilities.invokeLater(() -> apiKeyField.setText(apiKey));
|
||||
});
|
||||
|
||||
llamaModelPreferencesForm = new LlamaModelPreferencesForm();
|
||||
runLocalServerRadioButton = new JBRadioButton("Run local server",
|
||||
|
|
@ -189,17 +194,17 @@ public class LlamaServerPreferencesForm {
|
|||
createComment("settingsConfigurable.service.llama.threads.comment"))
|
||||
.addLabeledComponent(
|
||||
CodeGPTBundle.get("settingsConfigurable.service.llama.additionalParameters.label"),
|
||||
additionalParametersField)
|
||||
.addComponentToRightColumn(
|
||||
createComment(
|
||||
"settingsConfigurable.service.llama.additionalParameters.comment"))
|
||||
.addLabeledComponent(
|
||||
CodeGPTBundle.get(
|
||||
"settingsConfigurable.service.llama.additionalBuildParameters.label"),
|
||||
additionalBuildParametersField)
|
||||
.addComponentToRightColumn(
|
||||
createComment(
|
||||
"settingsConfigurable.service.llama.additionalBuildParameters.comment"))
|
||||
additionalParametersField)
|
||||
.addComponentToRightColumn(
|
||||
createComment(
|
||||
"settingsConfigurable.service.llama.additionalParameters.comment"))
|
||||
.addLabeledComponent(
|
||||
CodeGPTBundle.get(
|
||||
"settingsConfigurable.service.llama.additionalBuildParameters.label"),
|
||||
additionalBuildParametersField)
|
||||
.addComponentToRightColumn(
|
||||
createComment(
|
||||
"settingsConfigurable.service.llama.additionalBuildParameters.comment"))
|
||||
.addVerticalGap(4)
|
||||
.addComponentFillVertically(new JPanel(), 0)
|
||||
.getPanel()))
|
||||
|
|
@ -354,9 +359,9 @@ public class LlamaServerPreferencesForm {
|
|||
|
||||
public List<String> getListOfAdditionalParameters() {
|
||||
return Arrays.stream(additionalParametersField.getText().split(","))
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isBlank())
|
||||
.toList();
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isBlank())
|
||||
.toList();
|
||||
}
|
||||
|
||||
public String getAdditionalBuildParameters() {
|
||||
|
|
@ -365,9 +370,9 @@ public class LlamaServerPreferencesForm {
|
|||
|
||||
public List<String> getListOfAdditionalBuildParameters() {
|
||||
return Arrays.stream(additionalBuildParametersField.getText().split(","))
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isBlank())
|
||||
.toList();
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isBlank())
|
||||
.toList();
|
||||
}
|
||||
|
||||
public PromptTemplate getPromptTemplate() {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package ee.carlrobert.codegpt.settings.service.openai;
|
|||
import static ee.carlrobert.codegpt.credentials.CredentialsStore.CredentialKey.OPENAI_API_KEY;
|
||||
import static ee.carlrobert.codegpt.ui.UIUtil.withEmptyLeftBorder;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.ui.EnumComboBoxModel;
|
||||
import com.intellij.ui.TitledSeparator;
|
||||
|
|
@ -12,10 +13,12 @@ import com.intellij.util.ui.FormBuilder;
|
|||
import com.intellij.util.ui.UI;
|
||||
import ee.carlrobert.codegpt.CodeGPTBundle;
|
||||
import ee.carlrobert.codegpt.credentials.CredentialsStore;
|
||||
import ee.carlrobert.codegpt.credentials.CredentialsStore.CredentialKey;
|
||||
import ee.carlrobert.codegpt.settings.service.CodeCompletionConfigurationForm;
|
||||
import ee.carlrobert.codegpt.ui.UIUtil;
|
||||
import ee.carlrobert.llm.client.openai.completion.OpenAIChatCompletionModel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class OpenAISettingsForm {
|
||||
|
|
@ -28,7 +31,10 @@ public class OpenAISettingsForm {
|
|||
public OpenAISettingsForm(OpenAISettingsState settings) {
|
||||
apiKeyField = new JBPasswordField();
|
||||
apiKeyField.setColumns(30);
|
||||
apiKeyField.setText(CredentialsStore.getCredential(OPENAI_API_KEY));
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
var apiKey = CredentialsStore.getCredential(CredentialKey.OPENAI_API_KEY);
|
||||
SwingUtilities.invokeLater(() -> apiKeyField.setText(apiKey));
|
||||
});
|
||||
organizationField = new JBTextField(settings.getOrganization(), 30);
|
||||
completionModelComboBox = new ComboBox<>(
|
||||
new EnumComboBoxModel<>(OpenAIChatCompletionModel.class));
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package ee.carlrobert.codegpt.settings.service.you;
|
||||
|
||||
import static ee.carlrobert.codegpt.credentials.CredentialsStore.CredentialKey.YOU_ACCOUNT_PASSWORD;
|
||||
import static ee.carlrobert.codegpt.ui.UIUtil.withEmptyLeftBorder;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.ui.ComponentValidator;
|
||||
import com.intellij.openapi.ui.ValidationInfo;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
|
|
@ -53,7 +53,10 @@ public class YouSettingsForm extends JPanel {
|
|||
passwordField = new JBPasswordField();
|
||||
passwordField.setColumns(25);
|
||||
if (!settings.getEmail().isEmpty()) {
|
||||
passwordField.setText(CredentialsStore.getCredential(YOU_ACCOUNT_PASSWORD));
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
var apiKey = CredentialsStore.getCredential(CredentialKey.YOU_ACCOUNT_PASSWORD);
|
||||
SwingUtilities.invokeLater(() -> passwordField.setText(apiKey));
|
||||
});
|
||||
}
|
||||
signInButton = new JButton(CodeGPTBundle.get("settingsConfigurable.service.you.signIn.label"));
|
||||
signUpTextPane = createSignUpTextPane();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue