From 040877b66bbafbdef091e36b6377342e8206dd98 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Fri, 25 May 2012 14:38:56 +0200 Subject: [PATCH] AppCode: xcode templates reworked --- .../fileTypes/impl/NativeFileIconProvider.java | 9 +++++++-- .../com/intellij/openapi/util/io/FileUtil.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java b/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java index 2793909588ed..cbb83407d81c 100644 --- a/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java @@ -80,10 +80,10 @@ public class NativeFileIconProvider implements FileIconProvider { assert SwingComponentHolder.ourFileChooser != null || !ApplicationManager.getApplication().isReadAccessAllowed(); if (SystemInfo.isMac && virtualFile.isDirectory() && (flags & Iconable.ICON_FLAG_OPEN) == Iconable.ICON_FLAG_OPEN) { - icon = Foundation.isPackageAtPath(f) ? SwingComponentHolder.ourFileChooser.getIcon(f) : DIR_OPEN_ICON; + icon = Foundation.isPackageAtPath(f) ? getNativeIcon(f) : DIR_OPEN_ICON; } else { - icon = SwingComponentHolder.ourFileChooser.getIcon(f); + icon = getNativeIcon(f); } } catch (Exception e) { // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4854174 @@ -104,6 +104,11 @@ public class NativeFileIconProvider implements FileIconProvider { }); } + @Nullable + public static Icon getNativeIcon(@Nullable File file) { + return file == null ? null : SwingComponentHolder.ourFileChooser.getIcon(file); + } + private static Ext getExtension(final VirtualFile file, final int flags) { if (file.isDirectory()) { if (file.getExtension() == null) { diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java index 05e7d2fa2c36..f47ea423c48e 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java @@ -48,10 +48,26 @@ public class FileUtil extends FileUtilRt { @NonNls public static final String ASYNC_DELETE_EXTENSION = ".__del__"; + public static final int REGEX_PATTERN_FLAGS = SystemInfo.isFileSystemCaseSensitive ? 0 : Pattern.CASE_INSENSITIVE; + @SuppressWarnings({"unchecked"}) public static final TObjectHashingStrategy PATH_HASHING_STRATEGY = SystemInfo.isFileSystemCaseSensitive ? TObjectHashingStrategy.CANONICAL : CaseInsensitiveStringHashingStrategy.INSTANCE; + @SuppressWarnings({"unchecked"}) + public static final TObjectHashingStrategy FILE_HASHING_STRATEGY = + SystemInfo.isFileSystemCaseSensitive ? TObjectHashingStrategy.CANONICAL : new TObjectHashingStrategy() { + @Override + public int computeHashCode(File object) { + return fileHashCode(object); + } + + @Override + public boolean equals(File o1, File o2) { + return filesEqual(o1, o2); + } + }; + private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.util.io.FileUtil"); // do not use channels to copy files larger than 5 Mb because of possible MapFailed error