diff --git a/src/main/kotlin/app/termora/tree/NewHostTree.kt b/src/main/kotlin/app/termora/tree/NewHostTree.kt index cda12e7..b9738bb 100644 --- a/src/main/kotlin/app/termora/tree/NewHostTree.kt +++ b/src/main/kotlin/app/termora/tree/NewHostTree.kt @@ -466,7 +466,7 @@ class NewHostTree : SimpleTree(), Disposable { val nodes = getSelectionSimpleTreeNodes(true).filter { it.isFolder.not() } if (nodes.isEmpty()) return val source = if (openInNewWindow) - TermoraFrameManager.Companion.getInstance().createWindow().apply { isVisible = true } + TermoraFrameManager.getInstance().createWindow().apply { isVisible = true } else evt.source nodes.map { it.host }.forEach { openHostAction.actionPerformed(OpenHostActionEvent(source, it, evt)) } } diff --git a/src/main/kotlin/app/termora/tree/SimpleTree.kt b/src/main/kotlin/app/termora/tree/SimpleTree.kt index 392f233..2acfc85 100644 --- a/src/main/kotlin/app/termora/tree/SimpleTree.kt +++ b/src/main/kotlin/app/termora/tree/SimpleTree.kt @@ -271,12 +271,19 @@ open class SimpleTree : JXTree() { val nodes = mutableListOf>() val parents = paths.mapNotNull { it.lastPathComponent } .filterIsInstance>().toMutableList() + val model = super.getModel() if (include) { while (parents.isNotEmpty()) { val node = parents.removeFirst() nodes.add(node) - parents.addAll(node.children().toList().filterIsInstance>()) + val count = model.getChildCount(node) + for (i in 0 until count) { + val child = model.getChild(node, i) + if (child is SimpleTreeNode<*>) { + parents.add(child) + } + } } }