Skip to content

Commit 310d3e1

Browse files
committed
feat(ui): add new chat
1 parent 178853e commit 310d3e1

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

src/main/kotlin/cc/unitmesh/devti/gui/chat/ChatCodingPanel.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,4 +208,11 @@ class ChatCodingPanel(private val chatCodingService: ChatCodingService, val disp
208208
inputSection.text = trimMargin
209209
this.focusInput()
210210
}
211+
212+
// TODO: add session and stop manage
213+
fun clearChat() {
214+
progressBar.isVisible = false
215+
myList.removeAll()
216+
updateUI()
217+
}
211218
}

src/main/kotlin/cc/unitmesh/devti/gui/toolbar/NewChatAction.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package cc.unitmesh.devti.gui.toolbar
22

33
import cc.unitmesh.devti.AutoDevBundle
4+
import cc.unitmesh.devti.gui.AutoDevToolWindowFactory
5+
import cc.unitmesh.devti.gui.chat.ChatCodingPanel
46
import com.intellij.openapi.actionSystem.AnActionEvent
57
import com.intellij.openapi.actionSystem.Presentation
68
import com.intellij.openapi.actionSystem.ex.CustomComponentAction
79
import com.intellij.openapi.project.DumbAwareAction
10+
import com.intellij.openapi.project.ProjectManager
11+
import com.intellij.openapi.wm.ToolWindowManager
812
import com.intellij.ui.components.panels.Wrapper
913
import com.intellij.util.ui.JBInsets
1014
import com.intellij.util.ui.JBUI
15+
import java.awt.event.ActionEvent
1116
import javax.swing.JButton
1217
import javax.swing.JComponent
1318

@@ -23,6 +28,15 @@ class NewChatAction : DumbAwareAction(), CustomComponentAction {
2328
putClientProperty("ActionToolbar.smallVariant", true)
2429
putClientProperty("customButtonInsets", JBInsets(1).asUIResource())
2530
setOpaque(false)
31+
addActionListener { event: ActionEvent? ->
32+
val project = ProjectManager.getInstance().openProjects.firstOrNull() ?: return@addActionListener
33+
val toolWindowManager = ToolWindowManager.getInstance(project).getToolWindow(
34+
AutoDevToolWindowFactory.Util.id)
35+
val contentManager = toolWindowManager?.contentManager
36+
contentManager?.component?.components?.filterIsInstance<ChatCodingPanel>()?.firstOrNull()?.let {
37+
it.clearChat()
38+
}
39+
}
2640
}
2741
}
2842
return Wrapper(button).also {

src/main/kotlin/cc/unitmesh/devti/toolwindow/SendToWindow.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fun sendToChat(project: Project, runnable: (ChatCodingPanel) -> Unit) {
1414

1515
val toolWindowManager = ToolWindowManager.getInstance(project).getToolWindow(AutoDevToolWindowFactory.Util.id)
1616
val contentManager = toolWindowManager?.contentManager
17-
val contentPanel = ChatCodingPanel(chatCodingService, toolWindowManager?.disposable,)
17+
val contentPanel = ChatCodingPanel(chatCodingService, toolWindowManager?.disposable)
1818

1919
val content = contentManager?.factory?.createContent(contentPanel, chatCodingService.getLabel(), false)
2020

0 commit comments

Comments
 (0)