void () { final DefaultMutableTreeNode root = (DefaultMutableTreeNode)myLeftTree.getModel().getRoot(); root.removeAllChildren(); ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> { for (Module module : myModules) { if (module.isDisposed()) continue; ProgressManager.progress(CodeInsightBundle.message("update.module.tree.progress.text", module.getName())); DefaultMutableTreeNode moduleNode = new DefaultMutableTreeNode(new MyUserObject(isInCycle(module), module)); root.add(moduleNode); for (Module dependency : getModuleDependencies(module)) { moduleNode.add(new DefaultMutableTreeNode(new MyUserObject(isInCycle(dependency), dependency))); } } }, CodeInsightBundle.message("update.module.tree.progress.title"), true, myProject); TreeUtil.sortRecursively(root, NODE_COMPARATOR); ((DefaultTreeModel)myLeftTree.getModel()).reload(); TreeUtil.promiseSelectFirst(myLeftTree); }