restored dialog to add library to module dependencies after creation

This commit is contained in:
nik
2011-11-08 12:21:57 +04:00
parent c22c8e4e54
commit efeedbe783
4 changed files with 23 additions and 18 deletions
@@ -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<Module> 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<Module> chosenModules = dlg.getChosenElements();
for (Module module : chosenModules) {
moduleStructureConfigurable.addLibraryOrderEntry(module, library);
}
}
}
}
@@ -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) {
@@ -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<Module> 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<Module> chosenModules = dlg.getChosenElements();
for (Module module : chosenModules) {
moduleStructureConfigurable.addLibraryOrderEntry(module, myLibrary);
}
}
LibraryEditingUtil.showDialogAndAddLibraryToDependencies(myLibrary, myContext.getProject());
}
}
@@ -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.