simplify GTDUCollector a bit more
[idea/community.git] / java / idea-ui / src / com / intellij / ide / util / importProject / LibrariesLayoutPanel.java
1 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.ide.util.importProject;
3
4 import com.intellij.ide.JavaUiBundle;
5 import org.jetbrains.annotations.Nls;
6
7 import java.io.File;
8 import java.util.Collection;
9 import java.util.Collections;
10 import java.util.List;
11
12 /**
13  * @author Eugene Zhuravlev
14  */
15 public class LibrariesLayoutPanel extends ProjectLayoutPanel<LibraryDescriptor>{
16
17   public LibrariesLayoutPanel(final ModuleInsight insight) {
18     super(insight);
19   }
20
21   @Override
22   protected String getElementName(final LibraryDescriptor entry) {
23     return entry.getName();
24   }
25
26   @Override
27   protected void setElementName(final LibraryDescriptor entry, final String name) {
28     entry.setName(name);
29   }
30
31   @Override
32   protected List<LibraryDescriptor> getEntries() {
33     final List<LibraryDescriptor> libs = getInsight().getSuggestedLibraries();
34     return libs != null? libs : Collections.emptyList();
35   }
36
37   @Override
38   protected Collection getDependencies(final LibraryDescriptor entry) {
39     return entry.getJars();
40   }
41
42   @Override
43   protected LibraryDescriptor merge(final List<? extends LibraryDescriptor> entries) {
44     final ModuleInsight insight = getInsight();
45     LibraryDescriptor mainLib = null;
46     for (LibraryDescriptor entry : entries) {
47       if (mainLib == null) {
48         mainLib = entry;
49       }
50       else {
51         final Collection<File> files = entry.getJars();
52         insight.moveJarsToLibrary(entry, files, mainLib);
53       }
54     }
55     return mainLib;
56   }
57
58   @Override
59   protected LibraryDescriptor split(final LibraryDescriptor entry, final String newEntryName, final Collection<? extends File> extractedData) {
60     return getInsight().splitLibrary(entry, newEntryName, extractedData);
61   }
62
63   @Override
64   protected Collection<File> getContent(final LibraryDescriptor entry) {
65     return entry.getJars();
66   }
67
68   @Override
69   protected String getEntriesChooserTitle() {
70     return JavaUiBundle.message("title.libraries");
71   }
72
73   @Override
74   protected @Nls(capitalization = Nls.Capitalization.Title) String getDependenciesTitle() {
75     return JavaUiBundle.message("title.library.contents");
76   }
77
78   @Override
79   protected @Nls String getElementTypeName() {
80     return JavaUiBundle.message("library");
81   }
82
83   @Override
84   protected @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNameTitle() {
85     return JavaUiBundle.message("configurable.library.prefix");
86   }
87
88   @Override
89   protected @Nls(capitalization = Nls.Capitalization.Title) String getElementTypeNamePlural() {
90     return JavaUiBundle.message("title.libraries");
91   }
92
93   @Override
94   protected String getSplitDialogChooseFilesPrompt() {
95     return JavaUiBundle.message("label.select.jars.to.extract.to.new.library");
96   }
97
98   @Override
99   protected String getNameAlreadyUsedMessage(final String name) {
100     return JavaUiBundle.message("error.library.with.name.already.exists", name);
101   }
102
103   @Override
104   protected String getStepDescriptionText() {
105     return JavaUiBundle.message("libraries.layout.step.description");
106   }
107 }