e96f463040e8e11d53786d8784b997e0eb59b3a5
[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
6 import java.io.File;
7 import java.util.Collection;
8 import java.util.Collections;
9 import java.util.List;
10
11 /**
12  * @author Eugene Zhuravlev
13  */
14 public class LibrariesLayoutPanel extends ProjectLayoutPanel<LibraryDescriptor>{
15
16   public LibrariesLayoutPanel(final ModuleInsight insight) {
17     super(insight);
18   }
19
20   @Override
21   protected String getElementName(final LibraryDescriptor entry) {
22     return entry.getName();
23   }
24
25   @Override
26   protected void setElementName(final LibraryDescriptor entry, final String name) {
27     entry.setName(name);
28   }
29
30   @Override
31   protected List<LibraryDescriptor> getEntries() {
32     final List<LibraryDescriptor> libs = getInsight().getSuggestedLibraries();
33     return libs != null? libs : Collections.emptyList();
34   }
35
36   @Override
37   protected Collection getDependencies(final LibraryDescriptor entry) {
38     return entry.getJars();
39   }
40
41   @Override
42   protected LibraryDescriptor merge(final List<? extends LibraryDescriptor> entries) {
43     final ModuleInsight insight = getInsight();
44     LibraryDescriptor mainLib = null;
45     for (LibraryDescriptor entry : entries) {
46       if (mainLib == null) {
47         mainLib = entry;
48       }
49       else {
50         final Collection<File> files = entry.getJars();
51         insight.moveJarsToLibrary(entry, files, mainLib);
52       }
53     }
54     return mainLib;
55   }
56
57   @Override
58   protected LibraryDescriptor split(final LibraryDescriptor entry, final String newEntryName, final Collection<? extends File> extractedData) {
59     return getInsight().splitLibrary(entry, newEntryName, extractedData);
60   }
61
62   @Override
63   protected Collection<File> getContent(final LibraryDescriptor entry) {
64     return entry.getJars();
65   }
66
67   @Override
68   protected String getEntriesChooserTitle() {
69     return JavaUiBundle.message("title.libraries");
70   }
71
72   @Override
73   protected String getDependenciesTitle() {
74     return JavaUiBundle.message("title.library.contents");
75   }
76
77   @Override
78   protected String getElementTypeName() {
79     return "library";
80   }
81
82   @Override
83   protected String getSplitDialogChooseFilesPrompt() {
84     return JavaUiBundle.message("label.select.jars.to.extract.to.new.library");
85   }
86
87   @Override
88   protected String getNameAlreadyUsedMessage(final String name) {
89     return JavaUiBundle.message("error.library.with.name.already.exists", name);
90   }
91
92   @Override
93   protected String getStepDescriptionText() {
94     return JavaUiBundle.message("libraries.layout.step.description");
95   }
96 }