void (final CheckedTreeNode node, final boolean checked) { if (!checked) { if (myCheckPolicy.uncheckParentWithUncheckedChild) { TreeNode parent = node.getParent(); while (parent != null) { if (parent instanceof CheckedTreeNode) { changeNodeState((CheckedTreeNode)parent, false); } parent = parent.getParent(); } } if (myCheckPolicy.uncheckChildrenWithUncheckedParent) { uncheckChildren(node); } } else { if (myCheckPolicy.checkChildrenWithCheckedParent) { checkChildren(node); } if (myCheckPolicy.checkParentWithCheckedChild) { TreeNode parent = node.getParent(); while (parent != null) { if (parent instanceof CheckedTreeNode) { changeNodeState((CheckedTreeNode)parent, true); } parent = parent.getParent(); } } } }