mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
eliminating dependencies from compiler-impl to idea-ui
This commit is contained in:
+3
-8
@@ -2,7 +2,6 @@ package com.intellij.packaging.impl.elements;
|
||||
|
||||
import com.intellij.openapi.compiler.CompilerBundle;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ui.configuration.artifacts.ChooseArtifactsDialog;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.artifacts.ArtifactPointerManager;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
@@ -40,14 +39,10 @@ public class ArtifactElementType extends PackagingElementType<ArtifactPackagingE
|
||||
public List<? extends ArtifactPackagingElement> chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact,
|
||||
@NotNull CompositePackagingElement<?> parent) {
|
||||
final Project project = context.getProject();
|
||||
ChooseArtifactsDialog dialog = new ChooseArtifactsDialog(project, getAvailableArtifacts(context, artifact),
|
||||
CompilerBundle.message("dialog.title.choose.artifacts"), "");
|
||||
dialog.show();
|
||||
List<Artifact> artifacts = context.chooseArtifacts(getAvailableArtifacts(context, artifact), CompilerBundle.message("dialog.title.choose.artifacts"));
|
||||
final List<ArtifactPackagingElement> elements = new ArrayList<ArtifactPackagingElement>();
|
||||
if (dialog.isOK()) {
|
||||
for (Artifact selected : dialog.getChosenElements()) {
|
||||
elements.add(new ArtifactPackagingElement(project, ArtifactPointerManager.getInstance(project).create(selected.getName())));
|
||||
}
|
||||
for (Artifact selected : artifacts) {
|
||||
elements.add(new ArtifactPackagingElement(project, ArtifactPointerManager.getInstance(project).create(selected.getName())));
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
+2
-3
@@ -5,7 +5,7 @@ import com.intellij.facet.FacetTypeId;
|
||||
import com.intellij.facet.FacetTypeRegistry;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.ChooseElementsDialog;
|
||||
import com.intellij.ide.util.ChooseElementsDialog;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.packaging.elements.PackagingElement;
|
||||
@@ -44,14 +44,13 @@ public abstract class FacetBasedPackagingElementType<E extends PackagingElement<
|
||||
@NotNull
|
||||
@Override
|
||||
public List<? extends E> chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact, @NotNull CompositePackagingElement<?> parent) {
|
||||
final Project project = context.getProject();
|
||||
final List<F> facets = getFacets(context);
|
||||
ChooseFacetsDialog dialog = new ChooseFacetsDialog(context.getProject(), facets, getDialogTitle(), getDialogDescription());
|
||||
dialog.show();
|
||||
if (dialog.isOK()) {
|
||||
final List<E> elements = new ArrayList<E>();
|
||||
for (F facet : dialog.getChosenElements()) {
|
||||
elements.add(createElement(project, facet));
|
||||
elements.add(createElement(context.getProject(), facet));
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.roots.ui.configuration.packaging.ChooseLibrariesDialog;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.packaging.elements.PackagingElementType;
|
||||
@@ -41,15 +40,10 @@ public class LibraryElementType extends PackagingElementType<LibraryPackagingEle
|
||||
@NotNull
|
||||
public List<? extends LibraryPackagingElement> chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact,
|
||||
@NotNull CompositePackagingElement<?> parent) {
|
||||
ChooseLibrariesDialog dialog = new ChooseLibrariesDialog(context.getProject(), getAllLibraries(context),
|
||||
ProjectBundle.message("dialog.title.packaging.choose.library"), "");
|
||||
dialog.show();
|
||||
final List<Library> selected = dialog.getChosenElements();
|
||||
final List<Library> selected = context.chooseLibraries(getAllLibraries(context), ProjectBundle.message("dialog.title.packaging.choose.library"));
|
||||
final List<LibraryPackagingElement> elements = new ArrayList<LibraryPackagingElement>();
|
||||
if (dialog.isOK()) {
|
||||
for (Library library : selected) {
|
||||
elements.add(new LibraryPackagingElement(library.getTable().getTableLevel(), library.getName()));
|
||||
}
|
||||
for (Library library : selected) {
|
||||
elements.add(new LibraryPackagingElement(library.getTable().getTableLevel(), library.getName()));
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
+15
-2
@@ -1,7 +1,6 @@
|
||||
package com.intellij.packaging.impl.elements;
|
||||
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems.LibrarySourceItem;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -56,7 +55,7 @@ public class LibraryPackagingElement extends ComplexPackagingElement<LibraryPack
|
||||
@Override
|
||||
public PackagingElementOutputKind getFilesKind(PackagingElementResolvingContext context) {
|
||||
final Library library = findLibrary(context);
|
||||
return library != null ? LibrarySourceItem.getKindForLibrary(library) : PackagingElementOutputKind.OTHER;
|
||||
return library != null ? getKindForLibrary(library) : PackagingElementOutputKind.OTHER;
|
||||
}
|
||||
|
||||
public PackagingElementPresentation createPresentation(@NotNull ArtifactEditorContext context) {
|
||||
@@ -110,4 +109,18 @@ public class LibraryPackagingElement extends ComplexPackagingElement<LibraryPack
|
||||
public Library findLibrary(@NotNull PackagingElementResolvingContext context) {
|
||||
return LibraryLink.findLibrary(myName, myLevel, context.getProject());
|
||||
}
|
||||
|
||||
public static PackagingElementOutputKind getKindForLibrary(final Library library) {
|
||||
boolean containsDirectories = false;
|
||||
boolean containsJars = false;
|
||||
for (VirtualFile file : library.getFiles(OrderRootType.CLASSES)) {
|
||||
if (file.isInLocalFileSystem()) {
|
||||
containsDirectories = true;
|
||||
}
|
||||
else {
|
||||
containsJars = true;
|
||||
}
|
||||
}
|
||||
return new PackagingElementOutputKind(containsDirectories, containsJars);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-11
@@ -4,7 +4,6 @@ import com.intellij.openapi.compiler.CompilerBundle;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.ChooseModulesDialog;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
@@ -15,7 +14,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import javax.swing.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -41,7 +39,7 @@ public class ModuleOutputElementType extends PackagingElementType<ModuleOutputPa
|
||||
@NotNull
|
||||
public List<? extends ModuleOutputPackagingElement> chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact,
|
||||
@NotNull CompositePackagingElement<?> parent) {
|
||||
List<Module> modules = chooseModules(context, artifact);
|
||||
List<Module> modules = chooseModules(context);
|
||||
final List<ModuleOutputPackagingElement> elements = new ArrayList<ModuleOutputPackagingElement>();
|
||||
for (Module module : modules) {
|
||||
elements.add(new ModuleOutputPackagingElement(module.getName()));
|
||||
@@ -49,14 +47,8 @@ public class ModuleOutputElementType extends PackagingElementType<ModuleOutputPa
|
||||
return elements;
|
||||
}
|
||||
|
||||
public static List<Module> chooseModules(ArtifactEditorContext context, Artifact artifact) {
|
||||
ChooseModulesDialog dialog = new ChooseModulesDialog(context.getProject(), Arrays.asList(context.getModulesProvider().getModules()), ProjectBundle.message("dialog.title.packaging.choose.module"), "");
|
||||
dialog.show();
|
||||
List<Module> modules = dialog.getChosenElements();
|
||||
if (!dialog.isOK()) {
|
||||
modules = Collections.emptyList();
|
||||
}
|
||||
return modules;
|
||||
public static List<Module> chooseModules(ArtifactEditorContext context) {
|
||||
return context.chooseModules(Arrays.asList(context.getModulesProvider().getModules()), ProjectBundle.message("dialog.title.packaging.choose.module"));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ public class ModuleOutputPackagingElement extends PackagingElement<ModuleOutputP
|
||||
}
|
||||
|
||||
public PackagingElementPresentation createPresentation(@NotNull ArtifactEditorContext context) {
|
||||
return new DelegatedPackagingElementPresentation(new ModuleElementPresentation(myModuleName, findModule(context)));
|
||||
return new DelegatedPackagingElementPresentation(new ModuleElementPresentation(myModuleName, findModule(context), context));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ public class ModuleWithDependenciesElementType extends PackagingElementType<Modu
|
||||
public List<? extends ModuleWithDependenciesPackagingElement> chooseAndCreate(@NotNull ArtifactEditorContext context,
|
||||
@NotNull Artifact artifact,
|
||||
@NotNull CompositePackagingElement<?> parent) {
|
||||
final List<Module> modules = ModuleOutputElementType.chooseModules(context, artifact);
|
||||
final List<Module> modules = ModuleOutputElementType.chooseModules(context);
|
||||
final List<ModuleWithDependenciesPackagingElement> elements = new ArrayList<ModuleWithDependenciesPackagingElement>();
|
||||
for (Module module : modules) {
|
||||
elements.add(new ModuleWithDependenciesPackagingElement(module.getName()));
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ public class ModuleWithDependenciesPackagingElement extends ComplexPackagingElem
|
||||
}
|
||||
|
||||
public PackagingElementPresentation createPresentation(@NotNull ArtifactEditorContext context) {
|
||||
return new DelegatedPackagingElementPresentation(new ModuleElementPresentation(myModuleName, findModule(context)) {
|
||||
return new DelegatedPackagingElementPresentation(new ModuleElementPresentation(myModuleName, findModule(context), context) {
|
||||
@Override
|
||||
protected String getNodeText() {
|
||||
return CompilerBundle.message("node.text.0.with.dependencies", getPresentableName());
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
package com.intellij.packaging.impl.ui;
|
||||
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.artifacts.ArtifactPointer;
|
||||
import com.intellij.packaging.impl.artifacts.PlainArtifactType;
|
||||
@@ -36,7 +35,7 @@ public class ArtifactElementPresentation extends TreeNodePresentation {
|
||||
|
||||
@Override
|
||||
public void navigateToSource() {
|
||||
ProjectStructureConfigurable.getInstance(myContext.getProject()).select(myArtifact, true);
|
||||
myContext.selectArtifact(myArtifact);
|
||||
}
|
||||
|
||||
public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
|
||||
|
||||
+26
-4
@@ -2,8 +2,11 @@ package com.intellij.packaging.impl.ui;
|
||||
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.packaging.PackagingEditorUtil;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTable;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablePresentation;
|
||||
import com.intellij.openapi.roots.impl.ModuleLibraryTable;
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryImpl;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.packaging.ui.ArtifactEditorContext;
|
||||
import com.intellij.packaging.ui.PackagingElementPresentation;
|
||||
import com.intellij.packaging.ui.PackagingElementWeights;
|
||||
@@ -41,14 +44,14 @@ public class LibraryElementPresentation extends PackagingElementPresentation {
|
||||
|
||||
@Override
|
||||
public void navigateToSource() {
|
||||
ProjectStructureConfigurable.getInstance(myContext.getProject()).selectProjectOrGlobalLibrary(myLibrary, true);
|
||||
myContext.selectLibrary(myLibrary);
|
||||
}
|
||||
|
||||
public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
|
||||
if (myLibrary != null) {
|
||||
presentationData.setIcons(Icons.LIBRARY_ICON);
|
||||
presentationData.addText(myName, mainAttributes);
|
||||
presentationData.addText(PackagingEditorUtil.getLibraryTableComment(myLibrary), commentAttributes);
|
||||
presentationData.addText(getLibraryTableComment(myLibrary), commentAttributes);
|
||||
}
|
||||
else {
|
||||
presentationData.addText(myName, SimpleTextAttributes.ERROR_ATTRIBUTES);
|
||||
@@ -60,4 +63,23 @@ public class LibraryElementPresentation extends PackagingElementPresentation {
|
||||
return PackagingElementWeights.LIBRARY;
|
||||
}
|
||||
|
||||
public static String getLibraryTableDisplayName(final Library library) {
|
||||
LibraryTable table = library.getTable();
|
||||
LibraryTablePresentation presentation = table != null ? table.getPresentation() : ModuleLibraryTable.MODULE_LIBRARY_TABLE_PRESENTATION;
|
||||
return presentation.getDisplayName(false);
|
||||
}
|
||||
|
||||
public static String getLibraryTableComment(final Library library) {
|
||||
LibraryTable libraryTable = library.getTable();
|
||||
String displayName;
|
||||
if (libraryTable != null) {
|
||||
displayName = libraryTable.getPresentation().getDisplayName(false);
|
||||
}
|
||||
else {
|
||||
Module module = ((LibraryImpl)library).getModule();
|
||||
String tableName = getLibraryTableDisplayName(library);
|
||||
displayName = module != null ? "'" + module.getName() + "' " + tableName : tableName;
|
||||
}
|
||||
return " (" + displayName + ")";
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -3,9 +3,9 @@ package com.intellij.packaging.impl.ui;
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.openapi.compiler.CompilerBundle;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.packaging.ui.PackagingElementWeights;
|
||||
import com.intellij.packaging.ui.TreeNodePresentation;
|
||||
import com.intellij.packaging.ui.ArtifactEditorContext;
|
||||
import com.intellij.ui.SimpleTextAttributes;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -15,11 +15,13 @@ import org.jetbrains.annotations.Nullable;
|
||||
*/
|
||||
public class ModuleElementPresentation extends TreeNodePresentation {
|
||||
private final String myName;
|
||||
private final ArtifactEditorContext myContext;
|
||||
private final Module myModule;
|
||||
|
||||
public ModuleElementPresentation(@NotNull String name, @Nullable Module module) {
|
||||
public ModuleElementPresentation(@NotNull String name, @Nullable Module module, ArtifactEditorContext context) {
|
||||
myModule = module;
|
||||
myName = name;
|
||||
myContext = context;
|
||||
}
|
||||
|
||||
public String getPresentableName() {
|
||||
@@ -38,7 +40,7 @@ public class ModuleElementPresentation extends TreeNodePresentation {
|
||||
|
||||
@Override
|
||||
public void navigateToSource() {
|
||||
ProjectStructureConfigurable.getInstance(myModule.getProject()).select(myModule.getName(), null, true);
|
||||
myContext.selectModule(myModule);
|
||||
}
|
||||
|
||||
public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package com.intellij.packaging.ui;
|
||||
|
||||
import com.intellij.facet.Facet;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.artifacts.ArtifactType;
|
||||
import com.intellij.packaging.artifacts.ModifiableArtifactModel;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.packaging.elements.PackagingElementResolvingContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
@@ -28,4 +33,20 @@ public interface ArtifactEditorContext extends PackagingElementResolvingContext
|
||||
void ensureRootIsWritable(@NotNull Artifact originalArtifact);
|
||||
|
||||
ArtifactEditor getOrCreateEditor(Artifact originalArtifact);
|
||||
|
||||
|
||||
void selectArtifact(@NotNull Artifact artifact);
|
||||
|
||||
void selectFacet(@NotNull Facet<?> facet);
|
||||
|
||||
void selectModule(@NotNull Module module);
|
||||
|
||||
void selectLibrary(@NotNull Library library);
|
||||
|
||||
|
||||
List<Artifact> chooseArtifacts(List<? extends Artifact> artifacts, String title);
|
||||
|
||||
List<Module> chooseModules(List<Module> modules, final String title);
|
||||
|
||||
List<Library> chooseLibraries(List<Library> libraries, String title);
|
||||
}
|
||||
|
||||
+46
@@ -3,6 +3,11 @@ package com.intellij.openapi.roots.ui.configuration.artifacts;
|
||||
import com.intellij.openapi.project.Project;
|
||||
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.packaging.ChooseLibrariesDialog;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.ChooseModulesDialog;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.artifacts.ArtifactModel;
|
||||
import com.intellij.packaging.artifacts.ArtifactType;
|
||||
@@ -11,8 +16,12 @@ import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.packaging.ui.ArtifactEditor;
|
||||
import com.intellij.packaging.ui.ArtifactEditorContext;
|
||||
import com.intellij.packaging.ui.ManifestFileConfiguration;
|
||||
import com.intellij.facet.Facet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
@@ -53,6 +62,29 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext {
|
||||
return myParent.getOrCreateEditor(artifact);
|
||||
}
|
||||
|
||||
public void selectArtifact(@NotNull Artifact artifact) {
|
||||
ProjectStructureConfigurable.getInstance(getProject()).select(artifact, true);
|
||||
}
|
||||
|
||||
public void selectFacet(@NotNull Facet<?> facet) {
|
||||
ProjectStructureConfigurable.getInstance(getProject()).select(facet, true);
|
||||
}
|
||||
|
||||
public void selectModule(@NotNull Module module) {
|
||||
ProjectStructureConfigurable.getInstance(getProject()).select(module.getName(), null, true);
|
||||
}
|
||||
|
||||
public void selectLibrary(@NotNull Library library) {
|
||||
ProjectStructureConfigurable.getInstance(getProject()).selectProjectOrGlobalLibrary(library, true);
|
||||
}
|
||||
|
||||
public List<Artifact> chooseArtifacts(final List<? extends Artifact> artifacts, final String title) {
|
||||
ChooseArtifactsDialog dialog = new ChooseArtifactsDialog(getProject(), artifacts, title, "");
|
||||
dialog.show();
|
||||
return dialog.isOK() ? dialog.getChosenElements() : Collections.<Artifact>emptyList();
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
public ArtifactModel getArtifactModel() {
|
||||
return myParent.getArtifactModel();
|
||||
@@ -84,4 +116,18 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext {
|
||||
public void setValidationMananger(ArtifactValidationManagerImpl validationManager) {
|
||||
myValidationManager = validationManager;
|
||||
}
|
||||
|
||||
public List<Module> chooseModules(final List<Module> modules, final String title) {
|
||||
ChooseModulesDialog dialog = new ChooseModulesDialog(getProject(), modules, title, "");
|
||||
dialog.show();
|
||||
List<Module> selected = dialog.getChosenElements();
|
||||
return dialog.isOK() ? selected : Collections.<Module>emptyList();
|
||||
}
|
||||
|
||||
public List<Library> chooseLibraries(final List<Library> libraries, final String title) {
|
||||
ChooseLibrariesDialog dialog = new ChooseLibrariesDialog(getProject(), libraries, title, "");
|
||||
dialog.show();
|
||||
return dialog.isOK() ? dialog.getChosenElements() : Collections.<Library>emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.intellij.openapi.roots.ui.configuration.artifacts;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.ChooseElementsDialog;
|
||||
import com.intellij.ide.util.ChooseElementsDialog;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
+4
-17
@@ -3,12 +3,13 @@ package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems;
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.packaging.PackagingEditorUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packaging.elements.PackagingElement;
|
||||
import com.intellij.packaging.elements.PackagingElementFactory;
|
||||
import com.intellij.packaging.elements.PackagingElementOutputKind;
|
||||
import com.intellij.packaging.ui.*;
|
||||
import com.intellij.packaging.impl.ui.LibraryElementPresentation;
|
||||
import com.intellij.packaging.impl.elements.LibraryPackagingElement;
|
||||
import com.intellij.ui.SimpleTextAttributes;
|
||||
import com.intellij.util.Icons;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -46,21 +47,7 @@ public class LibrarySourceItem extends PackagingSourceItem {
|
||||
@NotNull
|
||||
@Override
|
||||
public PackagingElementOutputKind getKindOfProducedElements() {
|
||||
return getKindForLibrary(myLibrary);
|
||||
}
|
||||
|
||||
public static PackagingElementOutputKind getKindForLibrary(final Library library) {
|
||||
boolean containsDirectories = false;
|
||||
boolean containsJars = false;
|
||||
for (VirtualFile file : library.getFiles(OrderRootType.CLASSES)) {
|
||||
if (file.isInLocalFileSystem()) {
|
||||
containsDirectories = true;
|
||||
}
|
||||
else {
|
||||
containsJars = true;
|
||||
}
|
||||
}
|
||||
return new PackagingElementOutputKind(containsDirectories, containsJars);
|
||||
return LibraryPackagingElement.getKindForLibrary(myLibrary);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -92,7 +79,7 @@ public class LibrarySourceItem extends PackagingSourceItem {
|
||||
if (name != null) {
|
||||
presentationData.setIcons(Icons.LIBRARY_ICON);
|
||||
presentationData.addText(name, mainAttributes);
|
||||
presentationData.addText(PackagingEditorUtil.getLibraryTableComment(myLibrary), commentAttributes);
|
||||
presentationData.addText(LibraryElementPresentation.getLibraryTableComment(myLibrary), commentAttributes);
|
||||
}
|
||||
else {
|
||||
final VirtualFile[] files = myLibrary.getFiles(OrderRootType.CLASSES);
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ public class ModuleOutputSourceItem extends PackagingSourceItem {
|
||||
|
||||
@Override
|
||||
public SourceItemPresentation createPresentation(@NotNull ArtifactEditorContext context) {
|
||||
return new DelegatedSourceItemPresentation(new ModuleElementPresentation(myModule.getName(), myModule)) {
|
||||
return new DelegatedSourceItemPresentation(new ModuleElementPresentation(myModule.getName(), myModule, context)) {
|
||||
@Override
|
||||
public int getWeight() {
|
||||
return SourceItemWeights.MODULE_OUTPUT_WEIGHT;
|
||||
|
||||
-114
@@ -1,114 +0,0 @@
|
||||
package com.intellij.openapi.roots.ui.configuration.libraryEditor;
|
||||
|
||||
import com.intellij.ide.util.ElementsChooser;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.ui.ScrollPaneFactory;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public abstract class ChooseElementsDialog<T> extends DialogWrapper {
|
||||
protected ElementsChooser<T> myChooser;
|
||||
private String myDescription;
|
||||
|
||||
public ChooseElementsDialog(Project project, List<? extends T> items, String title, final String description) {
|
||||
super(project, true);
|
||||
myDescription = description;
|
||||
initializeDialog(items, title);
|
||||
}
|
||||
|
||||
public ChooseElementsDialog(Component parent, List<T> items, String title) {
|
||||
this(parent, items, title, false);
|
||||
}
|
||||
|
||||
public ChooseElementsDialog(Component parent, List<T> items, String title, final boolean sort) {
|
||||
super(parent, true);
|
||||
if (sort) {
|
||||
Collections.sort(items, new Comparator<T>() {
|
||||
public int compare(final T o1, final T o2) {
|
||||
return getItemText(o1).compareToIgnoreCase(getItemText(o2));
|
||||
}
|
||||
});
|
||||
}
|
||||
initializeDialog(items, title);
|
||||
}
|
||||
|
||||
private void initializeDialog(final List<? extends T> items, final String title) {
|
||||
setTitle(title);
|
||||
myChooser = new ElementsChooser<T>(false) {
|
||||
protected String getItemText(@NotNull final T item) {
|
||||
return ChooseElementsDialog.this.getItemText(item);
|
||||
}
|
||||
};
|
||||
myChooser.setColorUnmarkedElements(false);
|
||||
|
||||
setElements(items, items.size() > 0 ? items.subList(0, 1) : Collections.<T>emptyList());
|
||||
myChooser.getComponent().registerKeyboardAction(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doOKAction();
|
||||
}
|
||||
}, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), JComponent.WHEN_FOCUSED);
|
||||
myChooser.getComponent().addMouseListener(new MouseAdapter() {
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if (e.getClickCount() == 2 && !e.isPopupTrigger() && !e.isConsumed()) {
|
||||
e.consume();
|
||||
doOKAction();
|
||||
}
|
||||
}
|
||||
});
|
||||
init();
|
||||
}
|
||||
|
||||
protected abstract String getItemText(T item);
|
||||
|
||||
public List<T> getChosenElements() {
|
||||
return myChooser.getSelectedElements();
|
||||
}
|
||||
|
||||
public JComponent getPreferredFocusedComponent() {
|
||||
return myChooser.getComponent();
|
||||
}
|
||||
|
||||
protected JComponent createCenterPanel() {
|
||||
final JPanel panel = new JPanel(new BorderLayout());
|
||||
panel.add(ScrollPaneFactory.createScrollPane(myChooser.getComponent()), BorderLayout.CENTER);
|
||||
if (myDescription != null) {
|
||||
panel.add(new JLabel(myDescription), BorderLayout.NORTH);
|
||||
}
|
||||
return panel;
|
||||
}
|
||||
|
||||
private void setElements(final Collection<? extends T> elements, final Collection<? extends T> elementsToSelect) {
|
||||
myChooser.clear();
|
||||
for (final T item : elements) {
|
||||
myChooser.addElement(item, false, createElementProperties(item));
|
||||
}
|
||||
myChooser.selectElements(elementsToSelect);
|
||||
}
|
||||
|
||||
private ElementsChooser.ElementProperties createElementProperties(final T item) {
|
||||
return new ElementsChooser.ElementProperties() {
|
||||
public Icon getIcon() {
|
||||
return getItemIcon(item);
|
||||
}
|
||||
|
||||
public Color getColor() {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected abstract Icon getItemIcon(T item);
|
||||
}
|
||||
+1
@@ -12,6 +12,7 @@ package com.intellij.openapi.roots.ui.configuration.libraryEditor;
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.ide.util.ChooseElementsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.intellij.openapi.roots.ui.configuration.packaging;
|
||||
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.ChooseElementsDialog;
|
||||
import com.intellij.ide.util.ChooseElementsDialog;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.Icons;
|
||||
|
||||
+9
-30
@@ -3,17 +3,16 @@ package com.intellij.openapi.roots.ui.configuration.packaging;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.impl.ModuleLibraryTable;
|
||||
import com.intellij.openapi.roots.impl.OrderEntryUtil;
|
||||
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.LibraryTablePresentation;
|
||||
import com.intellij.openapi.roots.ui.util.OrderEntryCellAppearanceUtils;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.ColoredTreeCellRenderer;
|
||||
import com.intellij.ui.SimpleTextAttributes;
|
||||
import com.intellij.util.Icons;
|
||||
import com.intellij.packaging.impl.ui.LibraryElementPresentation;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
@@ -27,19 +26,13 @@ public class PackagingEditorUtil {
|
||||
private PackagingEditorUtil() {
|
||||
}
|
||||
|
||||
private static String getLibraryTableDisplayName(final Library library) {
|
||||
LibraryTable table = library.getTable();
|
||||
LibraryTablePresentation presentation = table != null ? table.getPresentation() : ModuleLibraryTable.MODULE_LIBRARY_TABLE_PRESENTATION;
|
||||
return presentation.getDisplayName(false);
|
||||
}
|
||||
|
||||
public static void renderLibraryNode(final ColoredTreeCellRenderer renderer, final Library library,
|
||||
final SimpleTextAttributes mainAttributes, final SimpleTextAttributes commentAttributes) {
|
||||
String name = library.getName();
|
||||
if (name != null) {
|
||||
renderer.setIcon(Icons.LIBRARY_ICON);
|
||||
renderer.append(name, mainAttributes);
|
||||
renderer.append(getLibraryTableComment(library), commentAttributes);
|
||||
renderer.append(LibraryElementPresentation.getLibraryTableComment(library), commentAttributes);
|
||||
}
|
||||
else {
|
||||
VirtualFile[] files = library.getFiles(OrderRootType.CLASSES);
|
||||
@@ -47,7 +40,7 @@ public class PackagingEditorUtil {
|
||||
VirtualFile file = files[0];
|
||||
renderer.setIcon(file.getIcon());
|
||||
renderer.append(file.getName(), mainAttributes);
|
||||
renderer.append(getLibraryTableComment(library), commentAttributes);
|
||||
renderer.append(LibraryElementPresentation.getLibraryTableComment(library), commentAttributes);
|
||||
}
|
||||
else {
|
||||
OrderEntryCellAppearanceUtils.forLibrary(library).customize(renderer);
|
||||
@@ -55,20 +48,6 @@ public class PackagingEditorUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static String getLibraryTableComment(final Library library) {
|
||||
LibraryTable libraryTable = library.getTable();
|
||||
String displayName;
|
||||
if (libraryTable != null) {
|
||||
displayName = libraryTable.getPresentation().getDisplayName(false);
|
||||
}
|
||||
else {
|
||||
Module module = ((LibraryImpl)library).getModule();
|
||||
String tableName = getLibraryTableDisplayName(library);
|
||||
displayName = module != null ? "'" + module.getName() + "' " + tableName : tableName;
|
||||
}
|
||||
return " (" + displayName + ")";
|
||||
}
|
||||
|
||||
public static void renderLibraryFile(final ColoredTreeCellRenderer renderer, final Library library, final VirtualFile file,
|
||||
final SimpleTextAttributes mainAttributes, final SimpleTextAttributes commentAttributes) {
|
||||
renderer.setIcon(file.getIcon());
|
||||
@@ -78,7 +57,7 @@ public class PackagingEditorUtil {
|
||||
if (name != null) {
|
||||
StringBuilder comment = new StringBuilder();
|
||||
comment.append(" ('").append(name).append("' ");
|
||||
comment.append(getLibraryTableDisplayName(library));
|
||||
comment.append(LibraryElementPresentation.getLibraryTableDisplayName(library));
|
||||
comment.append(")");
|
||||
renderer.append(comment.toString(), commentAttributes);
|
||||
}
|
||||
@@ -86,7 +65,7 @@ public class PackagingEditorUtil {
|
||||
Module module = ((LibraryImpl)library).getModule();
|
||||
String comment;
|
||||
if (module == null) {
|
||||
comment = " (" + getLibraryTableDisplayName(library) + ")";
|
||||
comment = " (" + LibraryElementPresentation.getLibraryTableDisplayName(library) + ")";
|
||||
}
|
||||
else {
|
||||
comment = " " + ProjectBundle.message("node.text.library.of.module", module.getName());
|
||||
@@ -99,13 +78,13 @@ public class PackagingEditorUtil {
|
||||
String name = library.getName();
|
||||
VirtualFile[] files = library.getFiles(OrderRootType.CLASSES);
|
||||
if (name != null) {
|
||||
return "'" + name + "' " + getLibraryTableDisplayName(library);
|
||||
return "'" + name + "' " + LibraryElementPresentation.getLibraryTableDisplayName(library);
|
||||
}
|
||||
else if (files.length > 0) {
|
||||
Module module = ((LibraryImpl)library).getModule();
|
||||
final String description;
|
||||
if (module == null) {
|
||||
description = "(" + getLibraryTableDisplayName(library) + ")";
|
||||
description = "(" + LibraryElementPresentation.getLibraryTableDisplayName(library) + ")";
|
||||
}
|
||||
else {
|
||||
description = ProjectBundle.message("node.text.library.of.module", module.getName());
|
||||
@@ -121,10 +100,10 @@ public class PackagingEditorUtil {
|
||||
String name = library.getName();
|
||||
VirtualFile[] files = library.getFiles(OrderRootType.CLASSES);
|
||||
if (name != null) {
|
||||
return name + (includeTableName ? getLibraryTableComment(library) : "");
|
||||
return name + (includeTableName ? LibraryElementPresentation.getLibraryTableComment(library) : "");
|
||||
}
|
||||
else if (files.length > 0) {
|
||||
return files[0].getName() + (includeTableName ? getLibraryTableComment(library) : "");
|
||||
return files[0].getName() + (includeTableName ? LibraryElementPresentation.getLibraryTableComment(library) : "");
|
||||
}
|
||||
else {
|
||||
return ProjectBundle.message("library.empty.item");
|
||||
|
||||
Reference in New Issue
Block a user