From 502b439724ad873b67d4cbaea7e8fa3a7cc94789 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 16 Nov 2010 13:17:21 +0300 Subject: [PATCH] suggest to add a library only to allowed modules --- .../configuration/classpath/AddNewLibraryItemAction.java | 2 +- .../libraryEditor/CreateNewLibraryAction.java | 7 +++++-- .../com/intellij/openapi/roots/libraries/LibraryType.java | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddNewLibraryItemAction.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddNewLibraryItemAction.java index ee73701ab151..fb55db139762 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddNewLibraryItemAction.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddNewLibraryItemAction.java @@ -116,7 +116,7 @@ class AddNewLibraryItemAction extends ChooseAndAddAction { suitableTypes.add(null); final ModuleType moduleType = classpathPanel.getRootModel().getModule().getModuleType(); for (LibraryType libraryType : LibraryType.EP_NAME.getExtensions()) { - if (libraryType.isSuitableForModuleType(moduleType)) { + if (libraryType.isSuitableModuleType(moduleType)) { suitableTypes.add(libraryType); } } 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 eb01bd5fa240..52e0a641aa03 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 @@ -31,7 +31,6 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesModifiab import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable; import com.intellij.openapi.ui.MasterDetailsComponent; import com.intellij.util.Icons; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -79,7 +78,11 @@ public class CreateNewLibraryAction extends AnAction { private void appendLibraryToModules(final ModuleStructureConfigurable rootConfigurable, final Library libraryToSelect) { final List modules = new ArrayList(); - ContainerUtil.addAll(modules, rootConfigurable.getModules()); + for (Module module : rootConfigurable.getModules()) { + if (myType == null || myType.isSuitableModuleType(module.getModuleType())) { + modules.add(module); + } + } if (modules.isEmpty()) return; final ChooseModulesDialog dlg = new ChooseModulesDialog(myProject, modules, ProjectBundle.message("choose.modules.dialog.title"), diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java index 73e4a0b741c1..d00b6c7bb8a6 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java @@ -51,7 +51,10 @@ public abstract class LibraryType

extends LibraryPr @NotNull public abstract P createDefaultProperties(); - public boolean isSuitableForModuleType(@NotNull ModuleType moduleType) { + /** + * @return {@code true} if library of this type can be added as a dependency to a module of type {@code moduleType} + */ + public boolean isSuitableModuleType(@NotNull ModuleType moduleType) { return true; }