@@ -5,18 +5,17 @@ import cc.unitmesh.devti.gui.block.whenDisposed
55import cc.unitmesh.devti.provider.ContextPrompter
66import com.intellij.ide.BrowserUtil
77import com.intellij.openapi.Disposable
8+ import com.intellij.openapi.ui.DialogPanel
89import com.intellij.openapi.ui.NullableComponent
910import com.intellij.openapi.ui.SimpleToolWindowPanel
1011import com.intellij.openapi.wm.IdeFocusManager
1112import com.intellij.ui.Gray
1213import com.intellij.ui.JBColor
13- import com.intellij.ui.OnePixelSplitter
1414import com.intellij.ui.components.ActionLink
1515import com.intellij.ui.components.JBLabel
16- import com.intellij.ui.components.JBPanel
1716import com.intellij.ui.components.JBScrollPane
1817import com.intellij.ui.components.panels.VerticalLayout
19- import com.intellij.ui.dsl.builder.*
18+ import com.intellij.ui.dsl.builder.panel
2019import com.intellij.ui.dsl.gridLayout.HorizontalAlign
2120import com.intellij.ui.dsl.gridLayout.VerticalAlign
2221import com.intellij.util.ui.JBEmptyBorder
@@ -25,9 +24,13 @@ import com.intellij.util.ui.JBUI
2524import com.intellij.util.ui.UIUtil
2625import kotlinx.coroutines.flow.Flow
2726import kotlinx.coroutines.flow.collect
28- import java.awt.BorderLayout
29- import java.awt.event.*
30- import javax.swing.*
27+ import java.awt.event.ActionListener
28+ import java.awt.event.MouseAdapter
29+ import java.awt.event.MouseEvent
30+ import javax.swing.JButton
31+ import javax.swing.JPanel
32+ import javax.swing.JProgressBar
33+ import javax.swing.ScrollPaneConstants
3134
3235
3336class ChatCodingPanel (private val chatCodingService : ChatCodingService , val disposable : Disposable ? ) :
@@ -36,14 +39,10 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
3639 private var progressBar: JProgressBar
3740 private val myTitle = JBLabel (" Conversation" )
3841 private val myList = JPanel (VerticalLayout (JBUI .scale(10 )))
39- private val myScrollPane = JBScrollPane (
40- myList,
41- ScrollPaneConstants .VERTICAL_SCROLLBAR_AS_NEEDED ,
42- ScrollPaneConstants .HORIZONTAL_SCROLLBAR_NEVER
43- )
4442 private var inputSection: AutoDevInputSection
4543 private val focusMouseListener: MouseAdapter
46-
44+ private var panelContent: DialogPanel
45+ private val myScrollPane: JBScrollPane
4746 init {
4847 focusMouseListener = object : MouseAdapter () {
4948 override fun mouseClicked (e : MouseEvent ? ) {
@@ -56,12 +55,17 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
5655
5756 myList.isOpaque = true
5857 myList.background = UIUtil .getListBackground()
58+
59+ myScrollPane = JBScrollPane (
60+ myList,
61+ ScrollPaneConstants .VERTICAL_SCROLLBAR_AS_NEEDED ,
62+ ScrollPaneConstants .HORIZONTAL_SCROLLBAR_NEVER
63+ )
5964 myScrollPane.border = JBEmptyBorder (10 , 15 , 10 , 15 )
65+ myScrollPane.verticalScrollBar.autoscrolls = true
6066
6167 progressBar = JProgressBar ()
6268
63- myScrollPane.verticalScrollBar.autoscrolls = true
64-
6569 val actionLink = ActionLink (AutoDevBundle .message(" label.submit.issue" )) {
6670 BrowserUtil .browse(" https://github.com/unit-mesh/auto-dev/issues" )
6771 }
@@ -82,22 +86,27 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
8286 }
8387 })
8488
85- setContent(
86- panel {
89+ panelContent = panel {
8790 row {
88- cell(myList).verticalAlign(VerticalAlign .FILL )
89- }
91+ cell(myScrollPane)
92+ .verticalAlign(VerticalAlign .FILL )
93+ .horizontalAlign(HorizontalAlign .FILL )
94+ }.resizableRow()
95+
9096 row {
9197 cell(progressBar).horizontalAlign(HorizontalAlign .FILL )
9298 }
99+
93100 row {
94101 cell(actionLink).horizontalAlign(HorizontalAlign .RIGHT )
95102 }
103+
96104 row {
97105 cell(inputSection).horizontalAlign(HorizontalAlign .FILL )
98106 }
99107 }
100- )
108+
109+ setContent(panelContent)
101110
102111 inputSection.text = " "
103112
0 commit comments