mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge branch 'master' of git.labs.intellij.net:idea/community
This commit is contained in:
+18
-50
@@ -25,9 +25,12 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.libraries.LibraryUtil;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.WrappingVirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -35,12 +38,11 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public class ProjectSettingsSelectInTarget implements SelectInTarget, DumbAware {
|
||||
public class ProjectStructureSelectInTarget implements SelectInTarget, DumbAware {
|
||||
public boolean canSelect(final SelectInContext context) {
|
||||
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(context.getProject()).getFileIndex();
|
||||
final VirtualFile file = context.getVirtualFile();
|
||||
@@ -54,7 +56,6 @@ public class ProjectSettingsSelectInTarget implements SelectInTarget, DumbAware
|
||||
public void selectIn(final SelectInContext context, final boolean requestFocus) {
|
||||
final Project project = context.getProject();
|
||||
final VirtualFile file = context.getVirtualFile();
|
||||
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
|
||||
|
||||
final Module module;
|
||||
final Facet facet;
|
||||
@@ -64,8 +65,9 @@ public class ProjectSettingsSelectInTarget implements SelectInTarget, DumbAware
|
||||
module = facet == null? null : facet.getModule();
|
||||
}
|
||||
else {
|
||||
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
|
||||
module = fileIndex.getModuleForFile(file);
|
||||
facet = findFacet(project, file, fileIndex);
|
||||
facet = fileIndex.isInSourceContent(file) ? null : findFacet(project, file);
|
||||
}
|
||||
if (module != null || facet != null) {
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
@@ -74,64 +76,30 @@ public class ProjectSettingsSelectInTarget implements SelectInTarget, DumbAware
|
||||
ModulesConfigurator.showFacetSettingsDialog(facet, null);
|
||||
}
|
||||
else {
|
||||
ModulesConfigurator.showDialog(project, module.getName(), null, false);
|
||||
ProjectSettingsService.getInstance(project).openModuleSettings(module);
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
final LibraryOrderEntry libraryOrderEntry = findLibrary(file, fileIndex);
|
||||
if (libraryOrderEntry != null) {
|
||||
final OrderEntry orderEntry = LibraryUtil.findLibraryEntry(file, project);
|
||||
if (orderEntry != null) {
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
ModulesConfigurator.showLibrarySettings(project, libraryOrderEntry);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
final Sdk jdk = findJdk(file, fileIndex);
|
||||
if (jdk != null) {
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
ModulesConfigurator.showSdkSettings(project, jdk);
|
||||
ProjectSettingsService.getInstance(project).openLibraryOrSdkSettings(orderEntry);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static LibraryOrderEntry findLibrary(final VirtualFile file, final ProjectFileIndex fileIndex) {
|
||||
List<OrderEntry> entries = fileIndex.getOrderEntriesForFile(file);
|
||||
for (OrderEntry entry : entries) {
|
||||
if (entry instanceof LibraryOrderEntry) {
|
||||
return (LibraryOrderEntry)entry;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static Sdk findJdk(final VirtualFile file, final ProjectFileIndex fileIndex) {
|
||||
List<OrderEntry> entries = fileIndex.getOrderEntriesForFile(file);
|
||||
for (OrderEntry entry : entries) {
|
||||
if (entry instanceof JdkOrderEntry) {
|
||||
return ((JdkOrderEntry)entry).getJdk();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static Facet findFacet(final @NotNull Project project, final @NotNull VirtualFile file, final @NotNull ProjectFileIndex fileIndex) {
|
||||
if (!fileIndex.isInSourceContent(file)) {
|
||||
for (FacetTypeId id : FacetTypeRegistry.getInstance().getFacetTypeIds()) {
|
||||
if (hasFacetWithRoots(project, id)) {
|
||||
Facet facet = FacetFinder.getInstance(project).findFacet(file, id);
|
||||
if (facet != null) {
|
||||
return facet;
|
||||
}
|
||||
private static Facet findFacet(final @NotNull Project project, final @NotNull VirtualFile file) {
|
||||
for (FacetTypeId id : FacetTypeRegistry.getInstance().getFacetTypeIds()) {
|
||||
if (hasFacetWithRoots(project, id)) {
|
||||
Facet facet = FacetFinder.getInstance(project).findFacet(file, id);
|
||||
if (facet != null) {
|
||||
return facet;
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-5
@@ -16,7 +16,6 @@
|
||||
package com.intellij.openapi.roots.ui.configuration;
|
||||
|
||||
import com.intellij.ide.projectView.impl.ModuleGroup;
|
||||
import com.intellij.ide.projectView.impl.nodes.NamedLibraryElement;
|
||||
import com.intellij.ide.util.projectWizard.JdkChooserPanel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.options.ShowSettingsUtil;
|
||||
@@ -85,21 +84,20 @@ public class IdeaProjectSettingsService extends ProjectSettingsService {
|
||||
ShowSettingsUtil.getInstance().editConfigurable(myProject, ProjectStructureConfigurable.getInstance(myProject), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ModuleStructureConfigurable.getInstance(myProject).selectOrderEntry(module, orderEntry);
|
||||
ProjectStructureConfigurable.getInstance(myProject).selectOrderEntry(module, orderEntry);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canOpenProjectLibrarySettings(NamedLibraryElement value) {
|
||||
public boolean canOpenLibraryOrSdkSettings(OrderEntry orderEntry) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void openProjectLibrarySettings(final NamedLibraryElement element) {
|
||||
public void openLibraryOrSdkSettings(@NotNull final OrderEntry orderEntry) {
|
||||
final ProjectStructureConfigurable config = ProjectStructureConfigurable.getInstance(myProject);
|
||||
ShowSettingsUtil.getInstance().editConfigurable(myProject, config, new Runnable() {
|
||||
public void run() {
|
||||
final OrderEntry orderEntry = element.getOrderEntry();
|
||||
if (orderEntry instanceof JdkOrderEntry) {
|
||||
config.select(((JdkOrderEntry)orderEntry).getJdk(), true);
|
||||
} else {
|
||||
|
||||
@@ -35,7 +35,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.ContentEntry;
|
||||
import com.intellij.openapi.roots.LibraryOrderEntry;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ModuleRootModel;
|
||||
import com.intellij.openapi.roots.impl.ProjectRootManagerImpl;
|
||||
@@ -519,24 +518,6 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change
|
||||
return myModified || myFacetsConfigurator.isModified();
|
||||
}
|
||||
|
||||
public static boolean showSdkSettings(@NotNull Project project, final Sdk sdk) {
|
||||
final ProjectStructureConfigurable configurable = ProjectStructureConfigurable.getInstance(project);
|
||||
return ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() {
|
||||
public void run() {
|
||||
configurable.select(sdk, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean showLibrarySettings(@NotNull Project project, @NotNull final LibraryOrderEntry library) {
|
||||
final ProjectStructureConfigurable configurable = ProjectStructureConfigurable.getInstance(project);
|
||||
return ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() {
|
||||
public void run() {
|
||||
configurable.select(library, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean showArtifactSettings(@NotNull Project project, @Nullable final Artifact artifact) {
|
||||
final ProjectStructureConfigurable configurable = ProjectStructureConfigurable.getInstance(project);
|
||||
return ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() {
|
||||
|
||||
+22
-3
@@ -20,6 +20,7 @@ import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleConfigurationEditor;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.options.BaseConfigurable;
|
||||
import com.intellij.openapi.options.Configurable;
|
||||
@@ -30,6 +31,7 @@ import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.LibraryOrderEntry;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactsStructureConfigurable;
|
||||
@@ -420,15 +422,32 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se
|
||||
public ActionCallback select(@NotNull LibraryOrderEntry libraryOrderEntry, final boolean requestFocus) {
|
||||
final Library lib = libraryOrderEntry.getLibrary();
|
||||
if (lib == null || lib.getTable() == null) {
|
||||
Place place = createPlaceFor(myModulesConfig);
|
||||
place.putPath(BaseStructureConfigurable.TREE_OBJECT, libraryOrderEntry.getOwnerModule());
|
||||
return navigateTo(place, requestFocus);
|
||||
return selectOrderEntry(libraryOrderEntry.getOwnerModule(), libraryOrderEntry);
|
||||
}
|
||||
Place place = createPlaceFor(getConfigurableFor(lib));
|
||||
place.putPath(BaseStructureConfigurable.TREE_NAME, libraryOrderEntry.getLibraryName());
|
||||
return navigateTo(place, requestFocus);
|
||||
}
|
||||
|
||||
public ActionCallback selectOrderEntry(@NotNull final Module module, @Nullable final OrderEntry orderEntry) {
|
||||
return select(module.getName(), null, true).doWhenDone(new Runnable() {
|
||||
public void run() {
|
||||
final MasterDetailsComponent.MyNode node = ModuleStructureConfigurable.getInstance(myProject).findModuleNode(module);
|
||||
if (node != null) {
|
||||
ModuleConfigurable moduleConfigurable = (ModuleConfigurable)node.getConfigurable();
|
||||
ModuleEditor moduleEditor = moduleConfigurable.getModuleEditor();
|
||||
moduleEditor.setSelectedTabName(ClasspathEditor.NAME);
|
||||
if (orderEntry != null) {
|
||||
ModuleConfigurationEditor editor = moduleEditor.getEditor(ClasspathEditor.NAME);
|
||||
if (editor instanceof ClasspathEditor) {
|
||||
((ClasspathEditor)editor).selectOrderEntry(orderEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public ActionCallback navigateTo(@Nullable final Place place, final boolean requestFocus) {
|
||||
final Configurable toSelect = (Configurable)place.getPath(CATEGORY);
|
||||
|
||||
|
||||
+1
-2
@@ -30,7 +30,6 @@ import com.intellij.openapi.roots.ui.configuration.ChooseModulesDialog;
|
||||
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.projectRoot.ModuleStructureConfigurable;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.artifacts.ArtifactModel;
|
||||
import com.intellij.packaging.artifacts.ArtifactType;
|
||||
@@ -124,7 +123,7 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext {
|
||||
final ModuleLibraryOrderEntryImpl libraryEntry = (ModuleLibraryOrderEntryImpl)entry;
|
||||
if (libraryName != null && libraryName.equals(libraryEntry.getLibraryName())
|
||||
|| libraryName == null && library.equals(libraryEntry.getLibrary())) {
|
||||
ModuleStructureConfigurable.getInstance(getProject()).selectOrderEntry(module, libraryEntry);
|
||||
ProjectStructureConfigurable.getInstance(getProject()).selectOrderEntry(module, libraryEntry);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-4
@@ -26,7 +26,7 @@ import com.intellij.openapi.roots.ModuleRootEvent;
|
||||
import com.intellij.openapi.roots.ModuleRootListener;
|
||||
import com.intellij.openapi.roots.ModuleSourceOrderEntry;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.util.CellAppearance;
|
||||
import com.intellij.openapi.roots.ui.util.OrderEntryCellAppearanceUtils;
|
||||
import com.intellij.openapi.ui.MasterDetailsComponent;
|
||||
@@ -39,8 +39,8 @@ import com.intellij.ui.PopupHandler;
|
||||
import com.intellij.ui.SimpleColoredComponent;
|
||||
import com.intellij.ui.SimpleTextAttributes;
|
||||
import com.intellij.ui.components.JBScrollPane;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.ui.treeStructure.Tree;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.ui.tree.TreeUtil;
|
||||
@@ -269,13 +269,12 @@ public class AnalyzeDependenciesComponent extends MasterDetailsComponent {
|
||||
if (module == null) {
|
||||
return;
|
||||
}
|
||||
ModuleStructureConfigurable c = ModuleStructureConfigurable.getInstance(module.getProject());
|
||||
final ModuleDependenciesAnalyzer.OrderPathElement element = e.getData(ORDER_PATH_ELEMENT_KEY);
|
||||
if (element != null && element instanceof ModuleDependenciesAnalyzer.OrderEntryPathElement) {
|
||||
final ModuleDependenciesAnalyzer.OrderEntryPathElement o = (ModuleDependenciesAnalyzer.OrderEntryPathElement)element;
|
||||
final OrderEntry entry = o.entry();
|
||||
final Module m = entry.getOwnerModule();
|
||||
c.selectOrderEntry(m, entry);
|
||||
ProjectStructureConfigurable.getInstance(module.getProject()).selectOrderEntry(m, entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -20,7 +20,7 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.roots.LibraryOrderEntry;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -29,15 +29,15 @@ import javax.swing.*;
|
||||
* @author nik
|
||||
*/
|
||||
public class AddExistingCustomLibraryAction extends CustomLibraryActionBase {
|
||||
private Library myLibrary;
|
||||
private final Library myLibrary;
|
||||
|
||||
public AddExistingCustomLibraryAction(Library library,
|
||||
Icon icon,
|
||||
CustomLibraryCreator creator,
|
||||
StructureConfigurableContext context,
|
||||
ModuleStructureConfigurable moduleStructureConfigurable,
|
||||
ProjectStructureConfigurable projectStructureConfigurable,
|
||||
Module module) {
|
||||
super(library.getName(), null, icon, context, moduleStructureConfigurable, creator, module);
|
||||
super(library.getName(), null, icon, context, projectStructureConfigurable, creator, module);
|
||||
myLibrary = library;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,6 @@ public class AddExistingCustomLibraryAction extends CustomLibraryActionBase {
|
||||
return;
|
||||
}
|
||||
final LibraryOrderEntry orderEntry = rootModel.addLibraryEntry(myLibrary);
|
||||
myModuleStructureConfigurable.selectOrderEntry(myModule, orderEntry);
|
||||
myProjectStructureConfigurable.selectOrderEntry(myModule, orderEntry);
|
||||
}
|
||||
}
|
||||
|
||||
+12
-8
@@ -29,12 +29,14 @@ import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryKind;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTable;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.CreateNewLibraryDialog;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
|
||||
import com.intellij.ui.treeStructure.Tree;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -46,13 +48,14 @@ import java.util.*;
|
||||
public class CreateCustomLibraryAction extends CustomLibraryActionBase {
|
||||
private CreateCustomLibraryAction(final String name, CustomLibraryCreator creator,
|
||||
StructureConfigurableContext context,
|
||||
ModuleStructureConfigurable moduleStructureConfigurable, Module module) {
|
||||
super(name, null, creator.getIcon(), context, moduleStructureConfigurable, creator, module);
|
||||
ProjectStructureConfigurable projectStructureConfigurable, Module module) {
|
||||
super(name, null, creator.getIcon(), context, projectStructureConfigurable, creator, module);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
final NewLibraryConfiguration libraryConfiguration = myCreator.getDescription().createNewLibrary(myModuleStructureConfigurable.getTree(),
|
||||
final Tree parentComponent = ModuleStructureConfigurable.getInstance(myContext.getProject()).getTree();
|
||||
final NewLibraryConfiguration libraryConfiguration = myCreator.getDescription().createNewLibrary(parentComponent,
|
||||
null);
|
||||
if (libraryConfiguration == null) {
|
||||
return;
|
||||
@@ -64,7 +67,7 @@ public class CreateCustomLibraryAction extends CustomLibraryActionBase {
|
||||
LibraryTablesRegistrar registrar = LibraryTablesRegistrar.getInstance();
|
||||
final Project project = myContext.getProject();
|
||||
final List<LibraryTable> tables = Arrays.asList(registrar.getLibraryTable(project), registrar.getLibraryTable());
|
||||
final CreateNewLibraryDialog dialog = new CreateNewLibraryDialog(myModuleStructureConfigurable.getTree(), myContext, libraryEditor, tables, 0);
|
||||
final CreateNewLibraryDialog dialog = new CreateNewLibraryDialog(parentComponent, myContext, libraryEditor, tables, 0);
|
||||
dialog.show();
|
||||
if (dialog.isOK()) {
|
||||
final Library library = dialog.createLibrary();
|
||||
@@ -73,7 +76,7 @@ public class CreateCustomLibraryAction extends CustomLibraryActionBase {
|
||||
return;
|
||||
}
|
||||
final LibraryOrderEntry orderEntry = rootModel.addLibraryEntry(library);
|
||||
myModuleStructureConfigurable.selectOrderEntry(myModule, orderEntry);
|
||||
myProjectStructureConfigurable.selectOrderEntry(myModule, orderEntry);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +84,7 @@ public class CreateCustomLibraryAction extends CustomLibraryActionBase {
|
||||
final Module module = moduleStructureConfigurable.getSelectedModule();
|
||||
if (module == null) return Collections.emptyList();
|
||||
|
||||
final ProjectStructureConfigurable projectStructureConfigurable = ProjectStructureConfigurable.getInstance(module.getProject());
|
||||
final List<AnAction> actions = new ArrayList<AnAction>();
|
||||
final LibrariesContainer container = LibrariesContainerFactory.createContainer(context);
|
||||
for (CustomLibraryCreator creator : CustomLibraryCreator.EP_NAME.getExtensions()) {
|
||||
@@ -98,15 +102,15 @@ public class CreateCustomLibraryAction extends CustomLibraryActionBase {
|
||||
final Predicate<Library> notAddedLibrariesCondition = LibraryEditingUtil.getNotAddedLibrariesCondition(context.getModulesConfigurator().getRootModel(module));
|
||||
final Collection<Library> librariesToAdd = Collections2.filter(libraries, Predicates.and(suitablePredicate, notAddedLibrariesCondition));
|
||||
if (librariesToAdd.isEmpty()) {
|
||||
actions.add(new CreateCustomLibraryAction(creator.getDisplayName(), creator, context, moduleStructureConfigurable, module));
|
||||
actions.add(new CreateCustomLibraryAction(creator.getDisplayName(), creator, context, projectStructureConfigurable, module));
|
||||
}
|
||||
else {
|
||||
final DefaultActionGroup group = new DefaultActionGroup(creator.getDisplayName(), true);
|
||||
group.getTemplatePresentation().setIcon(creator.getIcon());
|
||||
group.add(new CreateCustomLibraryAction("New...", creator, context, moduleStructureConfigurable, module));
|
||||
group.add(new CreateCustomLibraryAction("New...", creator, context, projectStructureConfigurable, module));
|
||||
for (Library library : librariesToAdd) {
|
||||
Icon icon = LibraryPresentationManager.getInstance().getNamedLibraryIcon(library, context);
|
||||
group.add(new AddExistingCustomLibraryAction(library, icon, creator, context, moduleStructureConfigurable, module));
|
||||
group.add(new AddExistingCustomLibraryAction(library, icon, creator, context, projectStructureConfigurable, module));
|
||||
}
|
||||
actions.add(group);
|
||||
}
|
||||
|
||||
+5
-5
@@ -21,9 +21,9 @@ import com.intellij.openapi.roots.LibraryOrderEntry;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -38,14 +38,14 @@ import java.util.List;
|
||||
public abstract class CustomLibraryActionBase extends DumbAwareAction {
|
||||
protected final CustomLibraryCreator myCreator;
|
||||
protected final StructureConfigurableContext myContext;
|
||||
protected final ModuleStructureConfigurable myModuleStructureConfigurable;
|
||||
protected Module myModule;
|
||||
protected final ProjectStructureConfigurable myProjectStructureConfigurable;
|
||||
protected final Module myModule;
|
||||
|
||||
protected CustomLibraryActionBase(String text, String description, Icon icon, StructureConfigurableContext context,
|
||||
ModuleStructureConfigurable moduleStructureConfigurable, CustomLibraryCreator creator, Module module) {
|
||||
ProjectStructureConfigurable projectStructureConfigurable, CustomLibraryCreator creator, Module module) {
|
||||
super(text, description, icon);
|
||||
myContext = context;
|
||||
myModuleStructureConfigurable = moduleStructureConfigurable;
|
||||
myProjectStructureConfigurable = projectStructureConfigurable;
|
||||
myCreator = creator;
|
||||
myModule = module;
|
||||
}
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ public class ModuleConfigurable extends ProjectStructureElementConfigurable<Modu
|
||||
//do nothing
|
||||
}
|
||||
|
||||
ModuleEditor getModuleEditor() {
|
||||
public ModuleEditor getModuleEditor() {
|
||||
return myConfigurator.getModuleEditor(myModule);
|
||||
}
|
||||
|
||||
|
||||
+4
-23
@@ -30,7 +30,10 @@ import com.intellij.ide.util.projectWizard.ProjectWizardUtil;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.module.*;
|
||||
import com.intellij.openapi.module.ModifiableModuleModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.module.ModuleType;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -40,17 +43,14 @@ import com.intellij.openapi.roots.impl.ClonableOrderEntry;
|
||||
import com.intellij.openapi.roots.impl.ProjectRootManagerImpl;
|
||||
import com.intellij.openapi.roots.impl.RootModelImpl;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.ClasspathEditor;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModuleEditor;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.libraries.CreateCustomLibraryAction;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.LibraryProjectStructureElement;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ModuleProjectStructureElement;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureDaemonAnalyzer;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.MasterDetailsComponent;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.NamedConfigurable;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
@@ -392,25 +392,6 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
return myProject;
|
||||
}
|
||||
|
||||
public void selectOrderEntry(@NotNull final Module module, @Nullable final OrderEntry orderEntry) {
|
||||
ProjectStructureConfigurable.getInstance(myProject).select(module.getName(), null, true).doWhenDone(new Runnable() {
|
||||
public void run() {
|
||||
final MyNode node = findModuleNode(module);
|
||||
if (node != null) {
|
||||
ModuleConfigurable moduleConfigurable = (ModuleConfigurable)node.getConfigurable();
|
||||
ModuleEditor moduleEditor = moduleConfigurable.getModuleEditor();
|
||||
moduleEditor.setSelectedTabName(ClasspathEditor.NAME);
|
||||
if (orderEntry != null) {
|
||||
ModuleConfigurationEditor editor = moduleEditor.getEditor(ClasspathEditor.NAME);
|
||||
if (editor instanceof ClasspathEditor) {
|
||||
((ClasspathEditor)editor).selectOrderEntry(orderEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Module[] getModules() {
|
||||
if (myContext.myModulesConfigurator != null) {
|
||||
final ModifiableModuleModel model = myContext.myModulesConfigurator.getModuleModel();
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ import com.intellij.openapi.roots.ModuleRootModel;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.roots.impl.OrderEntryUtil;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -65,7 +65,7 @@ public class UsageInModuleClasspath extends ProjectStructureElementUsage {
|
||||
else {
|
||||
entry = null;
|
||||
}
|
||||
ModuleStructureConfigurable.getInstance(myContext.getProject()).selectOrderEntry(myModule, entry);
|
||||
ProjectStructureConfigurable.getInstance(myContext.getProject()).selectOrderEntry(myModule, entry);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user