private void restoreChildren( final XDebuggerTreeNode treeNode, final XDebuggerTreeState.NodeInfo nodeInfo) { if (nodeInfo.isExpanded()) { myTree.expandPath(treeNode.getPath()); List<? extends XDebuggerTreeNode> children = treeNode.getLoadedChildren(); if (children != null) { for (XDebuggerTreeNode child : children) { restoreNode(child, nodeInfo); } } myNode2State.put(treeNode, nodeInfo); } }
public void childrenLoaded( @NotNull final XDebuggerTreeNode node, @NotNull final List<XValueContainerNode<?>> children, final boolean last) { XDebuggerTreeState.NodeInfo nodeInfo = myNode2State.get(node); if (nodeInfo != null) { for (XDebuggerTreeNode child : children) { restoreNode(child, nodeInfo); } } if (last) { myNode2State.remove(node); disposeIfFinished(); } }