void () { final Enumeration enumeration = myRoot.breadthFirstEnumeration(); boolean selected = false; while (enumeration.hasMoreElements()) { final MyNode node = (MyNode)enumeration.nextElement(); if (node instanceof MyRootNode) continue; final String path = getNodePathString(node); if (!selected && Comparing.strEqual(path, myState.getLastEditedConfigurable())) { TreeUtil.selectInTree(node, false, myTree); selected = true; } } if (!selected) { TreeUtil.promiseSelectFirst(myTree); } //'updateSelectionFromTree' initializes 'details' components and it may take some time, so if the component isn't showing now // it's better to postpone calling it until 'addNotify' is called; in complex dialog like Project Structure the component may not be shown at all. if (myWholePanel != null && myWholePanel.isShowing()) { updateSelectionFromTree(); } }