From a4e27882f77ba0bcf5b179ba3a2b57c2f605616e Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Thu, 24 Mar 2011 20:45:52 +0300 Subject: [PATCH] [mac] add isPackageAtPath to Foundation --- .../com/intellij/ui/mac/foundation/Foundation.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java b/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java index b090176309ef..227f9fd3b0f4 100644 --- a/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java +++ b/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java @@ -19,7 +19,9 @@ import com.intellij.util.containers.HashMap; import com.sun.jna.Callback; import com.sun.jna.Native; import com.sun.jna.Pointer; +import org.jetbrains.annotations.NotNull; +import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Map; @@ -89,6 +91,18 @@ public class Foundation { return toStringViaUTF8(myFoundationLibrary.NSFullUserName()); } + public static boolean isPackageAtPath(@NotNull final String path) { + final ID workspace = invoke("NSWorkspace", "sharedWorkspace"); + final ID result = invoke(workspace, createSelector("isFilePackageAtPath:"), cfString(path)); + + return result.intValue() == 1; + } + + public static boolean isPackageAtPath(@NotNull final File file) { + if (!file.isDirectory()) return false; + return isPackageAtPath(file.getPath()); + } + /** * Return a CFString as an ID, toll-free bridged to NSString. *