public void nodeLoaded(@NotNull final RestorableStateNode node, final String name) { XDebuggerTreeState.NodeInfo parentInfo = myNode2ParentState.remove(node); if (parentInfo != null) { doRestoreNode(node, parentInfo.removeChild(node.getName())); } disposeIfFinished(); }
private void restoreNode( final XDebuggerTreeNode treeNode, final XDebuggerTreeState.NodeInfo parentInfo) { if (treeNode instanceof RestorableStateNode) { RestorableStateNode node = (RestorableStateNode) treeNode; if (node.isComputed()) { doRestoreNode(node, parentInfo.removeChild(node.getName())); } else { myNode2ParentState.put(node, parentInfo); } } }
private void doRestoreNode( final RestorableStateNode treeNode, final XDebuggerTreeState.NodeInfo nodeInfo) { if (nodeInfo != null) { if (!checkExtendedModified(treeNode) && !(Comparing.equal(nodeInfo.getValue(), treeNode.getRawValue()))) { treeNode.markChanged(); } if (!myStopRestoringSelection && nodeInfo.isSelected()) { try { myInsideRestoring = true; myTree.addSelectionPath(treeNode.getPath()); } finally { myInsideRestoring = false; } } restoreChildren((XDebuggerTreeNode) treeNode, nodeInfo); } else if (!checkExtendedModified(treeNode)) { treeNode.markChanged(); } }
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); } }