protected void clearChildren() { TreeUtil.traverseDepth( myRoot, new TreeUtil.Traverse() { public boolean accept(Object node) { if (node instanceof MyNode) { final MyNode treeNode = ((MyNode) node); treeNode.getConfigurable().disposeUIResources(); if (!(treeNode instanceof MyRootNode)) { treeNode.setUserObject(null); } } return true; } }); myRoot.removeAllChildren(); }