ActionCallback (@NotNull Module module, @Nullable OrderEntry orderEntry) { for (final ModuleStructureExtension extension : ModuleStructureExtension.EP_NAME.getExtensions()) { final ActionCallback callback = extension.selectOrderEntry(module, orderEntry); if (callback != null) { return callback; } } Place p = new Place(); p.putPath(ProjectStructureConfigurable.CATEGORY, this); Runnable r = null; final MasterDetailsComponent.MyNode node = findModuleNode(module); if (node != null) { p.putPath(TREE_OBJECT, module); p.putPath(ModuleEditor.SELECTED_EDITOR_NAME, ClasspathEditor.getName()); r = () -> { if (orderEntry != null) { ModuleEditor moduleEditor = ((ModuleConfigurable)node.getConfigurable()).getModuleEditor(); ModuleConfigurationEditor editor = moduleEditor.getEditor(ClasspathEditor.getName()); if (editor instanceof ClasspathEditor) { ((ClasspathEditor)editor).selectOrderEntry(orderEntry); } } }; } final ActionCallback result = myProjectStructureConfigurable.navigateTo(p, true); return r != null ? result.doWhenDone(r) : result; }