JBIterable<TreePath> () { XDebuggerTreeNode root = ObjectUtils.tryCast(myComponent.getModel().getRoot(), XDebuggerTreeNode.class); int initialLevel = root != null ? root.getPath().getPathCount() : 0; return TreeUtil.treePathTraverser(myComponent) .expand(n -> myComponent.isExpanded(n) || (myCanExpand && n.getPathCount() - initialLevel < SEARCH_DEPTH)) .traverse() .filter(o -> !(o.getLastPathComponent() instanceof LoadingNode || (o.equals(root.getPath()) && !myComponent.isRootVisible()))); }