diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java index 8612f0518e3f..f641dc73d0e2 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java @@ -20,6 +20,7 @@ import com.intellij.ide.IdeBundle; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.roots.LibraryOrderEntry; import com.intellij.openapi.roots.ModuleRootModel; import com.intellij.openapi.roots.OrderEntry; @@ -30,6 +31,7 @@ import com.intellij.openapi.roots.impl.libraries.LibraryImpl; import com.intellij.openapi.roots.impl.libraries.LibraryTableImplUtil; import com.intellij.openapi.roots.libraries.*; import com.intellij.openapi.roots.libraries.ui.OrderRoot; +import com.intellij.openapi.roots.ui.configuration.ChooseModulesDialog; import com.intellij.openapi.roots.ui.configuration.classpath.ClasspathPanel; import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesModifiableModel; import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable; @@ -211,4 +213,21 @@ public class LibraryEditingUtil { } return modules; } + + public static void showDialogAndAddLibraryToDependencies(@NotNull Library library, @NotNull Project project) { + final ModuleStructureConfigurable moduleStructureConfigurable = ModuleStructureConfigurable.getInstance(project); + final List modules = getSuitableModules(moduleStructureConfigurable, ((LibraryEx)library).getType()); + if (modules.isEmpty()) return; + final ChooseModulesDialog + dlg = new ChooseModulesDialog(moduleStructureConfigurable.getProject(), modules, ProjectBundle.message("choose.modules.dialog.title"), + ProjectBundle + .message("choose.modules.dialog.description", library.getName())); + dlg.show(); + if (dlg.isOK()) { + final List chosenModules = dlg.getChosenElements(); + for (Module module : chosenModules) { + moduleStructureConfigurable.addLibraryOrderEntry(module, library); + } + } + } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/CreateNewLibraryAction.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/CreateNewLibraryAction.java index d302ef787d82..50b10c77c273 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/CreateNewLibraryAction.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/CreateNewLibraryAction.java @@ -76,8 +76,10 @@ public class CreateNewLibraryAction extends DumbAwareAction { final DefaultMutableTreeNode libraryNode = MasterDetailsComponent.findNodeByObject((TreeNode)rootConfigurable.getTree().getModel().getRoot(), library); rootConfigurable.selectNodeInTree(libraryNode); + LibraryEditingUtil.showDialogAndAddLibraryToDependencies(library, myProject); } + @Nullable public static Library createLibrary(@Nullable final LibraryType type, @NotNull final Component parentComponent, @NotNull final Project project, @NotNull final LibrariesModifiableModel modifiableModel) { diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/LibraryProjectStructureElement.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/LibraryProjectStructureElement.java index ad7d6adbc4b3..3790ec99387e 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/LibraryProjectStructureElement.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/LibraryProjectStructureElement.java @@ -1,6 +1,5 @@ package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon; -import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.roots.JavadocOrderRootType; @@ -11,7 +10,6 @@ import com.intellij.openapi.roots.impl.libraries.LibraryImpl; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; -import com.intellij.openapi.roots.ui.configuration.ChooseModulesDialog; import com.intellij.openapi.roots.ui.configuration.ModuleEditor; import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; import com.intellij.openapi.roots.ui.configuration.libraries.LibraryEditingUtil; @@ -187,20 +185,7 @@ public class LibraryProjectStructureElement extends ProjectStructureElement { @Override public void performFix() { - final Project project = myContext.getProject(); - final ModuleStructureConfigurable moduleStructureConfigurable = ModuleStructureConfigurable.getInstance(project); - final List modules = LibraryEditingUtil.getSuitableModules(moduleStructureConfigurable, ((LibraryEx)myLibrary).getType()); - if (modules.isEmpty()) return; - final ChooseModulesDialog dlg = new ChooseModulesDialog(project, modules, ProjectBundle.message("choose.modules.dialog.title"), - ProjectBundle - .message("choose.modules.dialog.description", myLibrary.getName())); - dlg.show(); - if (dlg.isOK()) { - final List chosenModules = dlg.getChosenElements(); - for (Module module : chosenModules) { - moduleStructureConfigurable.addLibraryOrderEntry(module, myLibrary); - } - } + LibraryEditingUtil.showDialogAndAddLibraryToDependencies(myLibrary, myContext.getProject()); } } diff --git a/platform/platform-resources-en/src/messages/ProjectBundle.properties b/platform/platform-resources-en/src/messages/ProjectBundle.properties index 3bd62e228178..bc968774e167 100644 --- a/platform/platform-resources-en/src/messages/ProjectBundle.properties +++ b/platform/platform-resources-en/src/messages/ProjectBundle.properties @@ -313,9 +313,8 @@ project.roots.plain.mode.action.text.disabled=Hide Module Groups project.roots.plain.mode.action.text.enabled=Show Module Groups project.roots.tooltip.library.has.broken.paths=Library ''{0}'' has broken {1, choice, 1#path|2#paths}. project.roots.error.message.invalid.roots=invalid {0} {1, choice, 1#root|2#roots} -choose.modules.dialog.title=Choose modules +choose.modules.dialog.title=Choose Modules choose.modules.dialog.description=Library '' {0}'' will be added to the selected modules. -project.roots.tooltip.unused=''{0}'' is unused. project.roots.javadoc.tab.description=Manage external JavaDocs attached to this module. External JavaDoc override JavaDoc annotations you might have in your module. project.roots.output.compiler.title=Compiler output project.roots.module.jdk.problem.message=Module SDK is not defined.