Skip to content

Commit 508211e

Browse files
committed
feat(clients): add icon next to name in llm clients table
1 parent 091ca1b commit 508211e

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/AICommitsExtensions.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import com.intellij.util.ui.ColumnInfo
88
import com.intellij.util.ui.ComponentWithEmptyText
99
import javax.swing.JComponent
1010

11-
fun <T> createColumn(name: String, formatter: (T) -> String) : ColumnInfo<T, String> {
12-
return object : ColumnInfo<T, String>(name) {
13-
override fun valueOf(item: T): String {
11+
fun <T, O> createColumn(name: String, formatter: (T) -> O) : ColumnInfo<T, O> {
12+
return object : ColumnInfo<T, O>(name) {
13+
override fun valueOf(item: T): O {
1414
return formatter(item)
1515
}
1616
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class ExclusionsConfigurable(val project: Project) : BoundConfigurable(message("
6767

6868
private fun createTableModel(): ListTableModel<String> = ListTableModel(
6969
arrayOf(
70-
createColumn<String>(message("settings.exclusions.app.exclusion")) { exclusion -> exclusion }
70+
createColumn<String, String>(message("settings.exclusions.app.exclusion")) { exclusion -> exclusion }
7171
),
7272
appExclusions.toList()
7373
)

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ import com.intellij.ui.table.TableView
1919
import com.intellij.util.containers.ContainerUtil
2020
import com.intellij.util.ui.JBUI
2121
import com.intellij.util.ui.ListTableModel
22+
import java.awt.Component
2223
import java.awt.event.MouseAdapter
2324
import java.awt.event.MouseEvent
24-
import javax.swing.JComponent
25-
import javax.swing.JList
26-
import javax.swing.JPanel
25+
import javax.swing.*
2726
import javax.swing.ListSelectionModel.SINGLE_SELECTION
27+
import javax.swing.table.DefaultTableCellRenderer
2828

2929
class LLMClientTable {
3030
private var llmClients = AppSettings2.instance.llmClientConfigurations
@@ -34,6 +34,7 @@ class LLMClientTable {
3434
setShowColumns(true)
3535
setSelectionMode(SINGLE_SELECTION)
3636

37+
columnModel.getColumn(0).cellRenderer = IconTextCellRenderer()
3738
columnModel.getColumn(0).preferredWidth = 150
3839
columnModel.getColumn(0).maxWidth = 250
3940

@@ -48,8 +49,8 @@ class LLMClientTable {
4849

4950
private fun createTableModel(): ListTableModel<LLMClientConfiguration> = ListTableModel(
5051
arrayOf(
51-
createColumn<LLMClientConfiguration>(message("settings.llmClient.name")) { llmClient -> llmClient.name },
52-
createColumn(message("settings.llmClient.modelId")) { llmClient -> llmClient.modelId },
52+
createColumn<LLMClientConfiguration, LLMClientConfiguration>(message("settings.llmClient.name")) { llmClient -> llmClient },
53+
createColumn<LLMClientConfiguration, String>(message("settings.llmClient.modelId")) { llmClient -> llmClient.modelId },
5354
createColumn(message("settings.llmClient.temperature")) { llmClient -> llmClient.temperature }
5455
),
5556
llmClients.toList()
@@ -184,4 +185,11 @@ class LLMClientTable {
184185
}
185186
}
186187

188+
class IconTextCellRenderer : DefaultTableCellRenderer() {
189+
override fun getTableCellRendererComponent(table: JTable, value: Any, isSelected: Boolean, hasFocus: Boolean, row: Int, column: Int): Component {
190+
val llmClientConfiguration = value as LLMClientConfiguration
191+
return JLabel(llmClientConfiguration.name, llmClientConfiguration.getClientIcon(), SwingConstants.LEFT)
192+
}
193+
}
194+
187195
}

src/main/kotlin/com/github/blarc/ai/commits/intellij/plugin/settings/prompts/PromptTable.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class PromptTable {
4949

5050
private fun createTableModel(): ListTableModel<Prompt> = ListTableModel(
5151
arrayOf(
52-
createColumn<Prompt>(message("settings.prompt.name")) { prompt -> prompt.name },
52+
createColumn<Prompt, String>(message("settings.prompt.name")) { prompt -> prompt.name },
5353
createColumn(message("settings.prompt.description")) { prompt -> prompt.description },
5454
),
5555
prompts.values.toList()

0 commit comments

Comments
 (0)