private void refreshTree(TreeNode node) { int childCount = node.getChildCount(); for (int i = 0; i < childCount; i++) { if (!node.isChildLeaf(i) && node.isChildOpen(i)) { node.setChildOpen(i, false); TreeNode child = node.setChildOpen(i, true); if (child != null) { refreshTree(child); } } } }
private boolean openNode(TreeNode node, TreePlace place) { int childCount = node.getChildCount(); for (int i = 0; i < childCount; i++) { if (node.getChildValue(i).equals(place)) { // node.setChildOpen(i, true, true); return true; } else if (!node.isChildLeaf(i)) { boolean wasOpen = node.isChildOpen(i); TreeNode child = node.setChildOpen(i, true); if (child != null && openNode(child, place)) { return true; } else if (!wasOpen) { node.setChildOpen(i, false); } } } return false; }