mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[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:
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
|
||||
|
||||
Reference in New Issue
Block a user