ActionCallback (Object element, VirtualFile file, boolean requestFocus) { if (file != null) { AbstractTreeBuilder builder = getTreeBuilder(); if (builder instanceof BaseProjectTreeBuilder) { beforeSelect().doWhenDone(() -> UIUtil.invokeLaterIfNeeded(() -> { if (!builder.isDisposed()) { ((BaseProjectTreeBuilder)builder).selectAsync(element, file, requestFocus); } })); } else if (myAsyncSupport != null) { return myAsyncSupport.select(myTree, element, file); } } return ActionCallback.DONE; }