diff options
Diffstat (limited to 'java/idea-ui/src/com/intellij/openapi')
4 files changed, 37 insertions, 15 deletions
diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandler.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandler.java index bf1efc89b0d5..0c7f20eb3313 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandler.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 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. @@ -16,6 +16,7 @@ package com.intellij.openapi.roots.ui.configuration; import com.intellij.icons.AllIcons; +import com.intellij.ui.JBColor; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.java.JavaResourceRootType; @@ -51,7 +52,7 @@ public class JavaResourceRootEditHandler extends JavaResourceRootEditHandlerBase @NotNull @Override public Color getRootsGroupColor() { - return new Color(0x812DF3); + return new JBColor(new Color(0x812DF3), new Color(127, 96, 144)); } @NotNull diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java index 10df2939f6e7..a10265607029 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java @@ -206,7 +206,9 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { myEditors.add(new ModuleConfigurableWrapper(moduleConfigurable)); } for(ModuleConfigurableEP extension : myModule.getExtensions(MODULE_CONFIGURABLES)) { - myEditors.add(new ModuleConfigurableWrapper(extension.createConfigurable())); + if (extension.canCreateConfigurable()) { + myEditors.add(new ModuleConfigurableWrapper(extension.createConfigurable())); + } } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java index a5867d66d176..12ab9b4c0de6 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java @@ -197,9 +197,9 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se myToolbarComponent = toolbar.getComponent(); if (Registry.is("ide.new.project.settings")) { left.setBackground(UIUtil.getSidePanelColor()); - } else { - left.add(myToolbarComponent, BorderLayout.NORTH); + myToolbarComponent.setBackground(UIUtil.getSidePanelColor()); } + left.add(myToolbarComponent, BorderLayout.NORTH); left.add(mySidePanel, BorderLayout.CENTER); mySplitter.setFirstComponent(left); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/DefaultLibraryRootsComponentDescriptor.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/DefaultLibraryRootsComponentDescriptor.java index eb87df2a47e7..5b3e9302a14b 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/DefaultLibraryRootsComponentDescriptor.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/DefaultLibraryRootsComponentDescriptor.java @@ -17,6 +17,7 @@ package com.intellij.openapi.roots.ui.configuration.libraryEditor; import com.intellij.codeInsight.ExternalAnnotationsManager; import com.intellij.openapi.fileChooser.FileChooserDescriptor; +import com.intellij.openapi.fileChooser.FileElement; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.module.Module; import com.intellij.openapi.progress.ProgressIndicator; @@ -29,7 +30,9 @@ import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.ui.*; import com.intellij.openapi.roots.ui.OrderRootTypeUIFactory; import com.intellij.openapi.roots.ui.configuration.PathUIUtils; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileVisitor; @@ -45,6 +48,14 @@ import java.util.*; * @author nik */ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponentDescriptor { + private static final Set<String> NATIVE_LIBRARY_EXTENSIONS = ContainerUtil.newTroveSet(FileUtil.PATH_HASHING_STRATEGY, "dll", "so", "dylib"); + public static final Condition<VirtualFile> LIBRARY_ROOT_CONDITION = new Condition<VirtualFile>() { + @Override + public boolean value(VirtualFile file) { + return FileElement.isArchive(file) || isNativeLibrary(file); + } + }; + @Override public OrderRootTypePresentation getRootTypePresentation(@NotNull OrderRootType type) { return getDefaultPresentation(type); @@ -67,10 +78,17 @@ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponen new AnnotationsRootFilter(), new NativeLibraryRootFilter()); } + private static boolean isNativeLibrary(VirtualFile file) { + String extension = file.getExtension(); + return extension != null && NATIVE_LIBRARY_EXTENSIONS.contains(extension); + } + @NotNull @Override public FileChooserDescriptor createAttachFilesChooserDescriptor(@Nullable String libraryName) { - FileChooserDescriptor descriptor = super.createAttachFilesChooserDescriptor(libraryName); + final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, true, true, false, true, true).withFileFilter(LIBRARY_ROOT_CONDITION); + descriptor.setTitle(StringUtil.isEmpty(libraryName) ? ProjectBundle.message("library.attach.files.action") + : ProjectBundle.message("library.attach.files.to.library.action", libraryName)); descriptor.setDescription(ProjectBundle.message("library.java.attach.files.description")); return descriptor; } @@ -119,24 +137,25 @@ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponen } } - private static class NativeLibraryRootFilter extends RootFilter { - private static final Set<String> NATIVE_LIBRARY_EXTENSIONS = ContainerUtil.newTroveSet(FileUtil.PATH_HASHING_STRATEGY, "dll", "so", "dylib"); - + private static class NativeLibraryRootFilter extends RootDetector { private NativeLibraryRootFilter() { - super(NativeLibraryOrderRootType.getInstance(), false, "external annotations"); + super(NativeLibraryOrderRootType.getInstance(), false, "native library location"); } + @NotNull @Override - public boolean isAccepted(@NotNull VirtualFile rootCandidate, @NotNull ProgressIndicator progressIndicator) { + public Collection<VirtualFile> detectRoots(@NotNull VirtualFile rootCandidate, @NotNull ProgressIndicator progressIndicator) { if (rootCandidate.isDirectory()) { for (VirtualFile file : rootCandidate.getChildren()) { - String extension = file.getExtension(); - if (extension != null && NATIVE_LIBRARY_EXTENSIONS.contains(extension)) { - return true; + if (isNativeLibrary(file)) { + return Collections.singleton(rootCandidate); } } } - return false; + else if (isNativeLibrary(rootCandidate)) { + return Collections.singleton(rootCandidate.getParent()); + } + return Collections.emptyList(); } } |