diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryElementType.java b/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryElementType.java index b93546665a69..33a691563521 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryElementType.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryElementType.java @@ -55,7 +55,7 @@ public class LibraryElementType extends ComplexPackagingElementType chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact, @NotNull CompositePackagingElement parent) { - final List selected = context.chooseLibraries(getAllLibraries(context), ProjectBundle.message("dialog.title.packaging.choose.library")); + final List selected = context.chooseLibraries(ProjectBundle.message("dialog.title.packaging.choose.library")); final List elements = new ArrayList(); for (Library library : selected) { elements.add(new LibraryPackagingElement(library.getTable().getTableLevel(), library.getName(), null)); diff --git a/java/compiler/openapi/src/com/intellij/packaging/ui/ArtifactEditorContext.java b/java/compiler/openapi/src/com/intellij/packaging/ui/ArtifactEditorContext.java index d5fe39d67bf4..7ede5bedb2f9 100644 --- a/java/compiler/openapi/src/com/intellij/packaging/ui/ArtifactEditorContext.java +++ b/java/compiler/openapi/src/com/intellij/packaging/ui/ArtifactEditorContext.java @@ -74,7 +74,7 @@ public interface ArtifactEditorContext extends PackagingElementResolvingContext List chooseModules(List modules, final String title); - List chooseLibraries(List libraries, String title); + List chooseLibraries(String title); Artifact getArtifact(); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java index c516993ad49b..866913fb8a3c 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java @@ -30,7 +30,6 @@ import com.intellij.openapi.roots.ui.configuration.FacetsProvider; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; import com.intellij.openapi.roots.ui.configuration.libraryEditor.ChooseModulesDialog; -import com.intellij.openapi.roots.ui.configuration.packaging.ChooseLibrariesDialog; import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable; import com.intellij.packaging.artifacts.Artifact; import com.intellij.packaging.artifacts.ArtifactModel; @@ -41,6 +40,7 @@ import com.intellij.packaging.impl.ui.ChooseArtifactsDialog; import com.intellij.packaging.ui.ArtifactEditor; import com.intellij.packaging.ui.ArtifactEditorContext; import com.intellij.packaging.ui.ManifestFileConfiguration; +import com.intellij.util.ui.classpath.ChooseLibrariesFromTablesDialog; import org.jetbrains.annotations.NotNull; import java.util.Collections; @@ -175,10 +175,10 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext { return dialog.isOK() ? selected : Collections.emptyList(); } - public List chooseLibraries(final List libraries, final String title) { - ChooseLibrariesDialog dialog = new ChooseLibrariesDialog(getProject(), libraries, title, null); + public List chooseLibraries(final String title) { + final ChooseLibrariesFromTablesDialog dialog = ChooseLibrariesFromTablesDialog.createDialog(title, getProject(), false); dialog.show(); - return dialog.isOK() ? dialog.getChosenElements() : Collections.emptyList(); + return dialog.isOK() ? dialog.getSelectedLibraries() : Collections.emptyList(); } public Artifact getArtifact() { diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ProjectStructureChooseLibrariesDialog.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ProjectStructureChooseLibrariesDialog.java index 56871dcef63a..646bd391f4f5 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ProjectStructureChooseLibrariesDialog.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ProjectStructureChooseLibrariesDialog.java @@ -43,7 +43,7 @@ public class ProjectStructureChooseLibrariesDialog extends ChooseLibrariesFromTa @Nullable Project project, StructureConfigurableContext context, Collection alreadyAddedLibraries) { - super(parentComponent, "Choose Libraries", project); + super(parentComponent, "Choose Libraries", project, true); myContext = context; myAlreadyAddedLibraries = alreadyAddedLibraries; init(); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/packaging/ChooseLibrariesDialog.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/packaging/ChooseLibrariesDialog.java deleted file mode 100644 index d73f74bb5835..000000000000 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/packaging/ChooseLibrariesDialog.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2000-2009 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.openapi.roots.ui.configuration.packaging; - -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.libraries.Library; -import com.intellij.ide.util.ChooseElementsDialog; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.project.Project; -import com.intellij.util.Icons; - -import javax.swing.*; -import java.util.List; - -/** - * @author nik - */ -public class ChooseLibrariesDialog extends ChooseElementsDialog { - - public ChooseLibrariesDialog(Project project, List items, String title, String description) { - super(project, items, title, description, true); - } - - protected String getItemText(final Library item) { - return item != null ? PackagingEditorUtil.getLibraryItemText(item, true) : ""; - } - - protected Icon getItemIcon(final Library item) { - if (item.getName() != null) { - return Icons.LIBRARY_ICON; - } - VirtualFile[] files = item.getFiles(OrderRootType.CLASSES); - if (files.length == 1) { - return files[0].getFileType().getIcon(); - } - return Icons.LIBRARY_ICON; - } -} diff --git a/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java b/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java index d7a0fc13c43a..7823372473ed 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java +++ b/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java @@ -65,11 +65,16 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { private List myResult; private final Map myParentsMap = new THashMap(); - public ChooseLibrariesDialogBase(final JComponent parentComponent, final String title) { + protected ChooseLibrariesDialogBase(final JComponent parentComponent, final String title) { super(parentComponent, false); setTitle(title); } + protected ChooseLibrariesDialogBase(Project project, String title) { + super(project, false); + setTitle(title); + } + @Override protected void init() { super.init(); diff --git a/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesFromTablesDialog.java b/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesFromTablesDialog.java index 22ebff226eb3..7862eb43c22a 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesFromTablesDialog.java +++ b/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesFromTablesDialog.java @@ -32,12 +32,31 @@ import java.util.List; */ public class ChooseLibrariesFromTablesDialog extends ChooseLibrariesDialogBase { private @Nullable Project myProject; + private boolean myShowCustomLibraryTables; - public ChooseLibrariesFromTablesDialog(JComponent parentComponent, String title, @Nullable Project project) { - super(parentComponent, title); + private ChooseLibrariesFromTablesDialog(@NotNull String title, @NotNull Project project, final boolean showCustomLibraryTables) { + super(project, title); + myShowCustomLibraryTables = showCustomLibraryTables; myProject = project; } + protected ChooseLibrariesFromTablesDialog(@NotNull JComponent parentComponent, + @NotNull String title, + @Nullable Project project, + final boolean showCustomLibraryTables) { + super(parentComponent, title); + myShowCustomLibraryTables = showCustomLibraryTables; + myProject = project; + } + + public static ChooseLibrariesFromTablesDialog createDialog(@NotNull String title, + @NotNull Project project, + final boolean showCustomLibraryTables) { + final ChooseLibrariesFromTablesDialog dialog = new ChooseLibrariesFromTablesDialog(title, project, showCustomLibraryTables); + dialog.init(); + return dialog; + } + @NotNull @Override protected Project getProject() { @@ -60,8 +79,10 @@ public class ChooseLibrariesFromTablesDialog extends ChooseLibrariesDialogBase { addLibraryTable(result, registrar.getLibraryTable(myProject)); } addLibraryTable(result, registrar.getLibraryTable()); - for (LibraryTable table : registrar.getCustomLibraryTables()) { - addLibraryTable(result, table); + if (myShowCustomLibraryTables) { + for (LibraryTable table : registrar.getCustomLibraryTables()) { + addLibraryTable(result, table); + } } } else if (element instanceof LibraryTable) {