@@ -5,18 +5,17 @@ import cc.unitmesh.devti.gui.block.whenDisposed
5
5
import cc.unitmesh.devti.provider.ContextPrompter
6
6
import com.intellij.ide.BrowserUtil
7
7
import com.intellij.openapi.Disposable
8
+ import com.intellij.openapi.ui.DialogPanel
8
9
import com.intellij.openapi.ui.NullableComponent
9
10
import com.intellij.openapi.ui.SimpleToolWindowPanel
10
11
import com.intellij.openapi.wm.IdeFocusManager
11
12
import com.intellij.ui.Gray
12
13
import com.intellij.ui.JBColor
13
- import com.intellij.ui.OnePixelSplitter
14
14
import com.intellij.ui.components.ActionLink
15
15
import com.intellij.ui.components.JBLabel
16
- import com.intellij.ui.components.JBPanel
17
16
import com.intellij.ui.components.JBScrollPane
18
17
import com.intellij.ui.components.panels.VerticalLayout
19
- import com.intellij.ui.dsl.builder.*
18
+ import com.intellij.ui.dsl.builder.panel
20
19
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
21
20
import com.intellij.ui.dsl.gridLayout.VerticalAlign
22
21
import com.intellij.util.ui.JBEmptyBorder
@@ -25,9 +24,13 @@ import com.intellij.util.ui.JBUI
25
24
import com.intellij.util.ui.UIUtil
26
25
import kotlinx.coroutines.flow.Flow
27
26
import 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
31
34
32
35
33
36
class ChatCodingPanel (private val chatCodingService : ChatCodingService , val disposable : Disposable ? ) :
@@ -36,14 +39,10 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
36
39
private var progressBar: JProgressBar
37
40
private val myTitle = JBLabel (" Conversation" )
38
41
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
- )
44
42
private var inputSection: AutoDevInputSection
45
43
private val focusMouseListener: MouseAdapter
46
-
44
+ private var panelContent: DialogPanel
45
+ private val myScrollPane: JBScrollPane
47
46
init {
48
47
focusMouseListener = object : MouseAdapter () {
49
48
override fun mouseClicked (e : MouseEvent ? ) {
@@ -56,12 +55,17 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
56
55
57
56
myList.isOpaque = true
58
57
myList.background = UIUtil .getListBackground()
58
+
59
+ myScrollPane = JBScrollPane (
60
+ myList,
61
+ ScrollPaneConstants .VERTICAL_SCROLLBAR_AS_NEEDED ,
62
+ ScrollPaneConstants .HORIZONTAL_SCROLLBAR_NEVER
63
+ )
59
64
myScrollPane.border = JBEmptyBorder (10 , 15 , 10 , 15 )
65
+ myScrollPane.verticalScrollBar.autoscrolls = true
60
66
61
67
progressBar = JProgressBar ()
62
68
63
- myScrollPane.verticalScrollBar.autoscrolls = true
64
-
65
69
val actionLink = ActionLink (AutoDevBundle .message(" label.submit.issue" )) {
66
70
BrowserUtil .browse(" https://github.com/unit-mesh/auto-dev/issues" )
67
71
}
@@ -82,22 +86,27 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
82
86
}
83
87
})
84
88
85
- setContent(
86
- panel {
89
+ panelContent = panel {
87
90
row {
88
- cell(myList).verticalAlign(VerticalAlign .FILL )
89
- }
91
+ cell(myScrollPane)
92
+ .verticalAlign(VerticalAlign .FILL )
93
+ .horizontalAlign(HorizontalAlign .FILL )
94
+ }.resizableRow()
95
+
90
96
row {
91
97
cell(progressBar).horizontalAlign(HorizontalAlign .FILL )
92
98
}
99
+
93
100
row {
94
101
cell(actionLink).horizontalAlign(HorizontalAlign .RIGHT )
95
102
}
103
+
96
104
row {
97
105
cell(inputSection).horizontalAlign(HorizontalAlign .FILL )
98
106
}
99
107
}
100
- )
108
+
109
+ setContent(panelContent)
101
110
102
111
inputSection.text = " "
103
112
0 commit comments