diff options
Diffstat (limited to 'java/idea-ui/src/com')
7 files changed, 90 insertions, 102 deletions
diff --git a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java index d44864e1485c..3bb96adb1141 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java +++ b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java @@ -246,7 +246,7 @@ public class LibraryOptionsPanel implements Disposable { onVersionChanged(getPresentableVersion()); } }); - myExistingLibraryComboBox.setRenderer(new ColoredListCellRenderer() { + myExistingLibraryComboBox.setRenderer(new ColoredListCellRenderer(myExistingLibraryComboBox) { @Override protected void customizeCellRenderer(JList list, Object value, int index, boolean selected, boolean hasFocus) { if (value == null) { diff --git a/java/idea-ui/src/com/intellij/ide/actions/ImportModuleAction.java b/java/idea-ui/src/com/intellij/ide/actions/ImportModuleAction.java index 2faa20bc412d..3d497b829d50 100644 --- a/java/idea-ui/src/com/intellij/ide/actions/ImportModuleAction.java +++ b/java/idea-ui/src/com/intellij/ide/actions/ImportModuleAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 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. @@ -24,6 +24,7 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.fileChooser.FileChooserDescriptor; +import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; import com.intellij.openapi.fileChooser.FileChooserDialog; import com.intellij.openapi.fileChooser.FileChooserFactory; import com.intellij.openapi.module.Module; @@ -39,7 +40,6 @@ import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import javax.swing.*; import java.awt.*; import java.util.Arrays; import java.util.Collections; @@ -94,14 +94,7 @@ public class ImportModuleAction extends AnAction { @Nullable public static AddModuleWizard selectFileAndCreateWizard(final Project project, Component dialogParent) { - FileChooserDescriptor descriptor = new FileChooserDescriptor(true, true, true, true, false, false) { - FileChooserDescriptor myDelegate = new OpenProjectFileChooserDescriptor(true); - @Override - public Icon getIcon(VirtualFile file) { - Icon icon = myDelegate.getIcon(file); - return icon == null ? super.getIcon(file) : icon; - } - }; + FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleLocalFileDescriptor(); descriptor.setHideIgnored(false); descriptor.setTitle("Select File or Directory to Import"); ProjectImportProvider[] providers = ProjectImportProvider.PROJECT_IMPORT_PROVIDER.getExtensions(); diff --git a/java/idea-ui/src/com/intellij/ide/actions/OpenProjectAction.java b/java/idea-ui/src/com/intellij/ide/actions/OpenProjectAction.java deleted file mode 100644 index 8cbb5543db6b..000000000000 --- a/java/idea-ui/src/com/intellij/ide/actions/OpenProjectAction.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2000-2013 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.ide.actions; - -import com.intellij.ide.IdeBundle; -import com.intellij.ide.highlighter.ProjectFileType; -import com.intellij.ide.impl.ProjectUtil; -import com.intellij.openapi.actionSystem.ActionPlaces; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.CommonDataKeys; -import com.intellij.openapi.actionSystem.PlatformDataKeys; -import com.intellij.openapi.extensions.Extensions; -import com.intellij.openapi.fileChooser.FileChooser; -import com.intellij.openapi.fileChooser.FileChooserDescriptor; -import com.intellij.openapi.fileChooser.PathChooserDialog; -import com.intellij.openapi.project.DumbAware; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.VfsUtil; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.projectImport.ProjectOpenProcessor; -import com.intellij.projectImport.ProjectOpenProcessorBase; -import com.intellij.util.Consumer; - -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -public class OpenProjectAction extends AnAction implements DumbAware { - public void actionPerformed(AnActionEvent e) { - final FileChooserDescriptor descriptor = new OpenProjectFileChooserDescriptor(true); - descriptor.setTitle(IdeBundle.message("title.open.project")); - final Set<String> extensions = new LinkedHashSet<String>(); - extensions.add(ProjectFileType.DOT_DEFAULT_EXTENSION); - final ProjectOpenProcessor[] openProcessors = Extensions.getExtensions(ProjectOpenProcessor.EXTENSION_POINT_NAME); - for (ProjectOpenProcessor openProcessor : openProcessors) { - if (!(openProcessor instanceof ProjectOpenProcessorBase)) continue; - final String[] supportedExtensions = ((ProjectOpenProcessorBase)openProcessor).getSupportedExtensions(); - if (supportedExtensions != null) { - Collections.addAll(extensions, supportedExtensions); - } - } - descriptor.setDescription(IdeBundle.message("filter.project.files", StringUtil.join(extensions, ", "))); - - VirtualFile userHomeDir = null; - if (SystemInfo.isUnix) { - userHomeDir = VfsUtil.getUserHomeDir(); - } - - descriptor.putUserData(PathChooserDialog.PREFER_LAST_OVER_EXPLICIT, Boolean.TRUE); - - final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext()); - FileChooser.chooseFiles(descriptor, project, userHomeDir, new Consumer<List<VirtualFile>>() { - @Override - public void consume(final List<VirtualFile> files) { - if (files.size() == 1) { - ProjectUtil.openOrImport(files.get(0).getPath(), project, false); - } - } - }); - } - - @Override - public void update(AnActionEvent e) { - super.update(e); - e.getPresentation().setEnabledAndVisible(ActionPlaces.WELCOME_SCREEN.equals(e.getPlace())); - } -}
\ No newline at end of file diff --git a/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java b/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java index ded07d482ed3..b43698ece136 100644 --- a/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java +++ b/java/idea-ui/src/com/intellij/ide/actions/ShowStructureSettingsAction.java @@ -37,6 +37,7 @@ import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; public class ShowStructureSettingsAction extends AnAction implements DumbAware { + @Override public void actionPerformed(AnActionEvent e) { Project project = CommonDataKeys.PROJECT.getData(e.getDataContext()); if (project == null) { @@ -56,12 +57,13 @@ public class ShowStructureSettingsAction extends AnAction implements DumbAware { protected JComponent createSouthPanel() { JComponent panel = super.createSouthPanel(); assert panel != null; - CustomLineBorder line = new CustomLineBorder(new JBColor(Gray._153, Gray._80), 1, 0, 0, 0); + CustomLineBorder line = new CustomLineBorder(new JBColor(Gray._153.withAlpha(128), Gray._100.withAlpha(128)), 1, 0, 0, 0); panel.setBorder(new CompoundBorder(line, new EmptyBorder(10, 5, 5, 5))); return panel; } }.show(); - } else { + } + else { ShowSettingsUtil .getInstance().editConfigurable(project, OptionsEditorDialog.DIMENSION_KEY, ProjectStructureConfigurable.getInstance(project)); } diff --git a/java/idea-ui/src/com/intellij/ide/actions/TemplateProjectStructureAction.java b/java/idea-ui/src/com/intellij/ide/actions/TemplateProjectStructureAction.java index 0255cb005ee7..093552e12be0 100644 --- a/java/idea-ui/src/com/intellij/ide/actions/TemplateProjectStructureAction.java +++ b/java/idea-ui/src/com/intellij/ide/actions/TemplateProjectStructureAction.java @@ -25,6 +25,7 @@ import com.intellij.openapi.project.ex.ProjectManagerEx; import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; public class TemplateProjectStructureAction extends AnAction implements DumbAware { + @Override public void actionPerformed(final AnActionEvent e) { Project defaultProject = ProjectManagerEx.getInstanceEx().getDefaultProject(); ShowSettingsUtil.getInstance().editConfigurable(defaultProject, OptionsEditorDialog.DIMENSION_KEY, ProjectStructureConfigurable.getInstance(defaultProject)); 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 34bd02b84950..eb87df2a47e7 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 @@ -16,6 +16,7 @@ package com.intellij.openapi.roots.ui.configuration.libraryEditor; import com.intellij.codeInsight.ExternalAnnotationsManager; +import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.module.Module; import com.intellij.openapi.progress.ProgressIndicator; @@ -23,22 +24,22 @@ import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.projectRoots.ui.Util; import com.intellij.openapi.roots.AnnotationOrderRootType; import com.intellij.openapi.roots.JavadocOrderRootType; +import com.intellij.openapi.roots.NativeLibraryOrderRootType; 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.io.FileUtil; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileVisitor; import com.intellij.util.IconUtil; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; +import java.util.*; /** * @author nik @@ -63,7 +64,15 @@ public class DefaultLibraryRootsComponentDescriptor extends LibraryRootsComponen PathUIUtils.JAVA_SOURCE_ROOT_DETECTOR, new FileTypeBasedRootFilter(OrderRootType.SOURCES, true, StdFileTypes.JAVA, "source archive directory"), new JavadocRootDetector(), - new AnnotationsRootFilter()); + new AnnotationsRootFilter(), new NativeLibraryRootFilter()); + } + + @NotNull + @Override + public FileChooserDescriptor createAttachFilesChooserDescriptor(@Nullable String libraryName) { + FileChooserDescriptor descriptor = super.createAttachFilesChooserDescriptor(libraryName); + descriptor.setDescription(ProjectBundle.message("library.java.attach.files.description")); + return descriptor; } public static OrderRootTypePresentation getDefaultPresentation(OrderRootType type) { @@ -110,6 +119,27 @@ 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 NativeLibraryRootFilter() { + super(NativeLibraryOrderRootType.getInstance(), false, "external annotations"); + } + + @Override + public boolean isAccepted(@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; + } + } + } + return false; + } + } + private static class AttachUrlJavadocDescriptor extends AttachRootButtonDescriptor { private AttachUrlJavadocDescriptor() { super(JavadocOrderRootType.getInstance(), IconUtil.getAddLinkIcon(), ProjectBundle.message("module.libraries.javadoc.url.button")); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/NativeLibraryOrderRootTypeUIFactory.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/NativeLibraryOrderRootTypeUIFactory.java new file mode 100644 index 000000000000..85ddcc42405c --- /dev/null +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/NativeLibraryOrderRootTypeUIFactory.java @@ -0,0 +1,46 @@ +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * User: anna + * Date: 26-Dec-2007 + */ +package com.intellij.openapi.roots.ui.configuration.libraryEditor; + +import com.intellij.icons.AllIcons; +import com.intellij.openapi.project.ProjectBundle; +import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.openapi.projectRoots.ui.SdkPathEditor; +import com.intellij.openapi.roots.ui.OrderRootTypeUIFactory; + +import javax.swing.*; + +public class NativeLibraryOrderRootTypeUIFactory implements OrderRootTypeUIFactory { + @Override + public Icon getIcon() { + return AllIcons.Nodes.NativeLibrariesFolder; + } + + @Override + public String getNodeText() { + return ProjectBundle.message("project.roots.native.library.node.text"); + } + + @Override + public SdkPathEditor createPathEditor(Sdk sdk) { + return null; + } +} |