mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
IJPL-165642 Create the Structure View UI on the EDT
(cherry picked from commit e9996decdd83fb657bfaabede8aae1435a51968e) IJ-CR-149552 GitOrigin-RevId: 3661e7c28297e8f28023e324f2e74fc545e3d8d7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
eb031cebe7
commit
698783ef8e
@@ -416,22 +416,24 @@ class StructureViewWrapperImpl(
|
||||
val structureViewBuilder = if (editor != null && editor.isValid)
|
||||
readAction { editor.structureViewBuilder } else createStructureViewBuilder(file)
|
||||
if (structureViewBuilder != null) {
|
||||
writeIntentReadAction {
|
||||
val structureView = structureViewBuilder.createStructureView(editor, project)
|
||||
myStructureView = structureView
|
||||
withContext(Dispatchers.EDT) {
|
||||
writeIntentReadAction {
|
||||
val structureView = structureViewBuilder.createStructureView(editor, project)
|
||||
myStructureView = structureView
|
||||
|
||||
myFileEditor = editor
|
||||
Disposer.register(this@StructureViewWrapperImpl, structureView)
|
||||
if (structureView is StructureViewComposite) {
|
||||
val views: Array<StructureViewDescriptor> = structureView.structureViews
|
||||
names = views.map { it.title }.toTypedArray()
|
||||
panels = views.map { createContentPanel(it.structureView.component) }
|
||||
myFileEditor = editor
|
||||
Disposer.register(this@StructureViewWrapperImpl, structureView)
|
||||
if (structureView is StructureViewComposite) {
|
||||
val views: Array<StructureViewDescriptor> = structureView.structureViews
|
||||
names = views.map { it.title }.toTypedArray()
|
||||
panels = views.map { createContentPanel(it.structureView.component) }
|
||||
}
|
||||
else {
|
||||
createSinglePanel(structureView.component)
|
||||
}
|
||||
structureView.restoreState()
|
||||
structureView.centerSelectedRow()
|
||||
}
|
||||
else {
|
||||
createSinglePanel(structureView.component)
|
||||
}
|
||||
structureView.restoreState()
|
||||
structureView.centerSelectedRow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user