[rd debugger] Subscribe XThreadsView to ui update debug session events

IJPL-203827

(cherry picked from commit ff9d8919a6c6776293d31f841cbac92e54d89add)


(cherry picked from commit be67b2d1becf7d159bed09d4fcedea9f34df69f3)

IJ-CR-182318

GitOrigin-RevId: ba1ce996ac8200c357b96869bf263d9568455717
This commit is contained in:
Maria Sokolova
2025-11-19 11:21:06 +00:00
committed by intellij-monorepo-bot
parent 442c513c97
commit 50bba22650
@@ -3,6 +3,7 @@ package com.intellij.xdebugger.impl.frame
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.NlsSafe
import com.intellij.platform.debugger.impl.rpc.XDebugSessionApi
import com.intellij.ui.AutoScrollToSourceHandler
import com.intellij.ui.SimpleColoredComponent
import com.intellij.ui.SimpleTextAttributes
@@ -17,6 +18,8 @@ import com.intellij.xdebugger.impl.ui.tree.XDebuggerTree
import com.intellij.xdebugger.impl.ui.tree.XDebuggerTreePanel
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueContainerNode
import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.jetbrains.annotations.ApiStatus
import java.awt.Component
import javax.swing.JPanel
@@ -48,6 +51,19 @@ class XThreadsView(project: Project, session: XDebugSessionProxy) : XDebugView()
}
}
}.install(tree)
subscribeToThreadRefreshEvents(session)
}
private fun subscribeToThreadRefreshEvents(session: XDebugSessionProxy) {
session.coroutineScope.launch {
XDebugSessionApi.getInstance().getUiUpdateEventsFlow(session.id)
.collectLatest {
DebuggerUIUtil.invokeLater {
tree.setRoot(XThreadsRootNode(tree, session), false)
}
}
}
}
val tree: XDebuggerTree get() = treePanel.tree