mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-375192 Structure View: Show empty node for lazy groups
GitOrigin-RevId: 3ec96a6ad7fa9b3416c299e31499f42c0a41436e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7441aaf87d
commit
90af13819d
@@ -5,6 +5,7 @@ action.structureview.show.inherited=Inherited
|
||||
action.structureview.sort.by.visibility=By Visibility
|
||||
file.structure.toggle.show.inherited=Inherited members
|
||||
node.structureview.invalid=<invalid>
|
||||
node.structureview.empty=<empty>
|
||||
structureview.subgroup.sort=Sort
|
||||
structureview.subgroup.filter=Show
|
||||
structureview.subgroup.group=Group
|
||||
|
||||
+16
-2
@@ -4,6 +4,7 @@ package com.intellij.ide.structureView.logical.impl
|
||||
import com.intellij.ide.TypePresentationService
|
||||
import com.intellij.ide.projectView.PresentationData
|
||||
import com.intellij.ide.structureView.*
|
||||
import com.intellij.ide.structureView.StructureViewBundle
|
||||
import com.intellij.ide.structureView.impl.common.PsiTreeElementBase
|
||||
import com.intellij.ide.structureView.logical.ContainerElementsProvider
|
||||
import com.intellij.ide.structureView.logical.ExternalElementsProvider
|
||||
@@ -37,7 +38,7 @@ class LogicalStructureViewModel private constructor(psiFile: PsiFile, editor: Ed
|
||||
}
|
||||
|
||||
override fun isAlwaysLeaf(element: StructureViewTreeElement?): Boolean {
|
||||
return element is ElementsBuilder.PropertyStructureElement
|
||||
return element is ElementsBuilder.PropertyStructureElement || element is ElementsBuilder.EmptyChildrenElement
|
||||
}
|
||||
|
||||
override fun isAutoExpand(element: StructureViewTreeElement): Boolean {
|
||||
@@ -289,7 +290,9 @@ private class ElementsBuilder {
|
||||
) : LogicalStructureViewTreeElement<T> {
|
||||
|
||||
private val cashedChildren: Array<TreeElement> by lazy {
|
||||
calculateChildren()
|
||||
val result = calculateChildren()
|
||||
if (result.isEmpty()) return@lazy arrayOf(EmptyChildrenElement())
|
||||
result
|
||||
}
|
||||
|
||||
override fun getValue(): Any = grouper
|
||||
@@ -388,4 +391,15 @@ private class ElementsBuilder {
|
||||
return assembledModel.hashCode()
|
||||
}
|
||||
}
|
||||
|
||||
class EmptyChildrenElement: StructureViewTreeElement {
|
||||
override fun getPresentation(): ItemPresentation {
|
||||
return PresentationData(null, null, null, null).apply {
|
||||
this.addText(StructureViewBundle.message("node.structureview.empty"), SimpleTextAttributes.GRAY_SMALL_ATTRIBUTES)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getChildren(): Array<out TreeElement?> = emptyArray()
|
||||
override fun getValue(): Any? = Any()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user