@@ -19,12 +19,12 @@ import com.intellij.ui.table.TableView
1919import com.intellij.util.containers.ContainerUtil
2020import com.intellij.util.ui.JBUI
2121import com.intellij.util.ui.ListTableModel
22+ import java.awt.Component
2223import java.awt.event.MouseAdapter
2324import java.awt.event.MouseEvent
24- import javax.swing.JComponent
25- import javax.swing.JList
26- import javax.swing.JPanel
25+ import javax.swing.*
2726import javax.swing.ListSelectionModel.SINGLE_SELECTION
27+ import javax.swing.table.DefaultTableCellRenderer
2828
2929class 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}
0 commit comments