Skip to content

Commit 43983aa

Browse files
committed
feat(clients): make client add/edit dialog prettier
1 parent e7f6e8e commit 43983aa

File tree

6 files changed

+18
-19
lines changed

6 files changed

+18
-19
lines changed

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/LLMClientPanel.kt

+5-6
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ abstract class LLMClientPanel(
3535
.widthGroup("label")
3636
textField()
3737
.bindText(clientConfiguration::name)
38-
.widthGroup("input")
38+
.align(Align.FILL)
3939
.validationOnInput { notBlank(it.text) }
4040
}
4141
}
@@ -49,7 +49,7 @@ abstract class LLMClientPanel(
4949
isEditable = true
5050
}
5151
.bindItem(property)
52-
.widthGroup("input")
52+
.align(Align.FILL)
5353
.onApply { clientConfiguration.addHost(hostComboBox.item) }
5454
}
5555
}
@@ -61,7 +61,7 @@ abstract class LLMClientPanel(
6161
.applyToComponent { minimumWidth = 400 }
6262
.bindIntText(property)
6363
.resizableColumn()
64-
.widthGroup("input")
64+
.align(Align.FILL)
6565
.validationOnInput { isInt(it.text) }
6666
}
6767
}
@@ -80,7 +80,7 @@ abstract class LLMClientPanel(
8080
clientConfiguration.modelId = it
8181
}
8282
})
83-
.widthGroup("input")
83+
.align(Align.FILL)
8484
.resizableColumn()
8585
.onApply { clientConfiguration.addModelId(modelComboBox.item) }
8686

@@ -103,12 +103,11 @@ abstract class LLMClientPanel(
103103
.bindText(clientConfiguration::temperature)
104104
.applyToComponent { minimumWidth = 400 }
105105
.resizableColumn()
106-
.widthGroup("input")
106+
.align(Align.FILL)
107107
.validationOnInput { temperatureValid(it.text) }
108108

109109
contextHelp(message("settings.llmClient.temperature.comment"))
110110
.resizableColumn()
111-
.align(AlignX.LEFT)
112111
}
113112
}
114113

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/LLMClientTable.kt

-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ class LLMClientTable {
150150
return Splitter(false, 0.25f).apply {
151151

152152
val cardPanel = JPanel(cardLayout).apply {
153-
preferredSize = JBUI.size(640, 480)
154153
llmClientConfigurations.forEach {
155154
add(it.getClientName(), it.panel().create())
156155
}

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/gemini/GeminiClientPanel.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.github.blarc.ai.commits.intellij.plugin.AICommitsBundle.message
44
import com.github.blarc.ai.commits.intellij.plugin.notBlank
55
import com.github.blarc.ai.commits.intellij.plugin.settings.clients.LLMClientPanel
66
import com.intellij.ui.components.JBTextField
7+
import com.intellij.ui.dsl.builder.Align
78
import com.intellij.ui.dsl.builder.Panel
89
import com.intellij.ui.dsl.builder.bindText
910
import com.intellij.ui.dsl.builder.panel
@@ -35,7 +36,7 @@ class GeminiClientPanel private constructor(
3536
cell(projectIdTextField)
3637
.bindText(clientConfiguration::projectId)
3738
.resizableColumn()
38-
.widthGroup("input")
39+
.align(Align.FILL)
3940
.validationOnInput { notBlank(it.text) }
4041
.comment(message("settings.gemini.project-id.comment"))
4142
}
@@ -50,7 +51,7 @@ class GeminiClientPanel private constructor(
5051
.bindText(clientConfiguration::location)
5152
.resizableColumn()
5253
.validationOnInput { notBlank(it.text) }
53-
.widthGroup("input")
54+
.align(Align.FILL)
5455
}
5556
}
5657

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/openAi/OpenAiClientPanel.kt

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.github.blarc.ai.commits.intellij.plugin.settings.clients.LLMClientPan
66
import com.intellij.ui.components.JBPasswordField
77
import com.intellij.ui.components.JBTextField
88
import com.intellij.ui.dsl.builder.*
9-
import com.intellij.ui.util.minimumWidth
109

1110
class OpenAiClientPanel(private val clientConfiguration: OpenAiClientConfiguration) : LLMClientPanel(clientConfiguration) {
1211
private val proxyTextField = JBTextField()
@@ -30,10 +29,9 @@ class OpenAiClientPanel(private val clientConfiguration: OpenAiClientConfigurati
3029
label(message("settings.llmClient.proxy"))
3130
.widthGroup("label")
3231
cell(proxyTextField)
33-
.applyToComponent { minimumWidth = 400 }
3432
.bindText(clientConfiguration::proxyUrl.toNonNullableProperty(""))
3533
.resizableColumn()
36-
.widthGroup("input")
34+
.align(Align.FILL)
3735
.comment(message("settings.llmClient.proxy.comment"))
3836
}
3937
}
@@ -48,8 +46,9 @@ class OpenAiClientPanel(private val clientConfiguration: OpenAiClientConfigurati
4846
})
4947
.emptyText(if (clientConfiguration.tokenIsStored) message("settings.openAI.token.stored") else message("settings.openAI.token.example"))
5048
.resizableColumn()
51-
.widthGroup("input")
52-
.comment(message("settings.openAi.token.comment"))
49+
.align(Align.FILL)
50+
// maxLineLength was eye-balled, but prevents the dialog getting wider
51+
.comment(message("settings.openAi.token.comment"), 50)
5352
}
5453
}
5554

@@ -59,7 +58,8 @@ class OpenAiClientPanel(private val clientConfiguration: OpenAiClientConfigurati
5958
.widthGroup("label")
6059
textField()
6160
.bindText(clientConfiguration::organizationId.toNonNullableProperty(""))
62-
.widthGroup("input")
61+
.align(Align.FILL)
62+
.resizableColumn()
6363
}
6464
}
6565

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/clients/qianfan/QianfanClientPanel.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import com.github.blarc.ai.commits.intellij.plugin.AICommitsBundle.message
33
import com.github.blarc.ai.commits.intellij.plugin.emptyText
44
import com.github.blarc.ai.commits.intellij.plugin.settings.clients.LLMClientPanel
55
import com.intellij.ui.components.JBPasswordField
6+
import com.intellij.ui.dsl.builder.Align
67
import com.intellij.ui.dsl.builder.bindText
78
import com.intellij.ui.dsl.builder.panel
89
import com.intellij.ui.dsl.builder.toNullableProperty
@@ -26,7 +27,7 @@ class QianfanClientPanel(private val clientConfiguration: QianfanClientConfigura
2627
})
2728
.emptyText(if (clientConfiguration.apiKeyIsStored) message("settings.openAI.token.stored") else "JzRxxxxxxxxxxxxxxxxxxxxx")
2829
.resizableColumn()
29-
.widthGroup("input")
30+
.align(Align.FILL)
3031
}
3132
row {
3233
label(message("settings.qianfan.secretKey"))
@@ -37,7 +38,7 @@ class QianfanClientPanel(private val clientConfiguration: QianfanClientConfigura
3738
})
3839
.emptyText(if (clientConfiguration.secretKeyIsStored) message("settings.openAI.token.stored") else "kSlxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
3940
.resizableColumn()
40-
.widthGroup("input")
41+
.align(Align.FILL)
4142
}
4243

4344
temperatureRow()

src/main/resources/messages/AiCommitsBundle.properties

+1-2
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ settings.llmClient.temperature.comment=What sampling temperature to use, between
7373

7474
settings.openAI.token.example=sk-ABCdefgHIjKlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7575
settings.openAI.token.stored=<hidden>
76-
settings.openAi.token.comment=\
77-
<p>You can get your token <a href="https://platform.openai.com/account/api-keys">here.</a/></p>
76+
settings.openAi.token.comment=You can get your token <a href="https://platform.openai.com/account/api-keys">here.</a>
7877
settings.openAi.organizationId=Organization ID
7978
settings.qianfan.apiKey=API key
8079
settings.qianfan.secretKey=Secret key

0 commit comments

Comments
 (0)