diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableEditor.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableEditor.java index fc06c9d2fa48..50c8570a757b 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableEditor.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableEditor.java @@ -45,7 +45,6 @@ import com.intellij.ui.treeStructure.Tree; import com.intellij.util.ArrayUtil; import com.intellij.util.Icons; import com.intellij.util.ui.UIUtil; -import com.intellij.util.ui.tree.TreeUtil; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -222,17 +221,7 @@ public class LibraryTableEditor implements Disposable { public void selectLibrary(Library library, boolean expand) { LibraryTableTreeContentElement element = new LibraryElement(library, this, false); - myTreeBuilder.updateFromRoot(); - DefaultMutableTreeNode node = myTreeBuilder.getNodeForElement(element); - if (node == null) { - return; - } - myTree.requestFocus(); - final TreePath treePath = new TreePath(node.getPath()); - TreeUtil.selectPath(myTree, treePath); - if (expand) { - myTree.expandPath(treePath); - } + myTreeBuilder.updateAndSelect(element); } public void disableAttachButtons() { diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableTreeBuilder.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableTreeBuilder.java index f19eb8f8d5f5..1432162809d9 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableTreeBuilder.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryTableTreeBuilder.java @@ -36,4 +36,12 @@ class LibraryTableTreeBuilder extends AbstractTreeBuilder { protected ProgressIndicator createProgressIndicator() { return new StatusBarProgress(); } + + public void updateAndSelect(final LibraryTableTreeContentElement element) { + updateFromRootCB().doWhenDone(new Runnable() { + public void run() { + select(element); + } + }); + } }