< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/CFileDialog.m
Print this page
rev 54094 : 8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D code
rev 54096 : 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros
rev 54097 : 8259869: [macOS] Remove desktop module dependencies on JNF Reference APIs
rev 54098 : 8260616: Removing remaining JNF dependencies in the java.desktop module
8259729: Missed JNFInstanceOf -> IsInstanceOf conversion
@@ -23,14 +23,14 @@
* questions.
*/
#import <sys/stat.h>
#import <Cocoa/Cocoa.h>
-#import <JavaNativeFoundation/JavaNativeFoundation.h>
-#import "CFileDialog.h"
#import "ThreadUtilities.h"
+#import "JNIUtilities.h"
+#import "CFileDialog.h"
#import "java_awt_FileDialog.h"
#import "sun_lwawt_macosx_CFileDialog.h"
@implementation CFileDialog
@@ -46,11 +46,11 @@
canChooseDirectories:(BOOL)inChooseDirectories
withEnv:(JNIEnv*)env;
{
if (self = [super init]) {
fHasFileFilter = inHasFilter;
- fFileDialog = JNFNewGlobalRef(env, inDialog);
+ fFileDialog = (*env)->NewGlobalRef(env, inDialog);
fDirectory = inPath;
[fDirectory retain];
fFile = inFile;
[fFile retain];
fTitle = inTitle;
@@ -66,11 +66,11 @@
}
-(void) disposer {
if (fFileDialog != NULL) {
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
- JNFDeleteGlobalRef(env, fFileDialog);
+ (*env)->DeleteGlobalRef(env, fFileDialog);
fFileDialog = NULL;
}
}
-(void) dealloc {
@@ -140,15 +140,16 @@
[self disposer];
}
- (BOOL) askFilenameFilter:(NSString *)filename {
JNIEnv *env = [ThreadUtilities getJNIEnv];
- jstring jString = JNFNormalizedJavaStringForPath(env, filename);
+ jstring jString = NormalizedPathJavaStringFromNSString(env, filename);
- static JNF_CLASS_CACHE(jc_CFileDialog, "sun/lwawt/macosx/CFileDialog");
- static JNF_MEMBER_CACHE(jm_queryFF, jc_CFileDialog, "queryFilenameFilter", "(Ljava/lang/String;)Z");
- BOOL returnValue = JNFCallBooleanMethod(env, fFileDialog, jm_queryFF, jString); // AWT_THREADING Safe (AWTRunLoopMode)
+ DECLARE_CLASS_RETURN(jc_CFileDialog, "sun/lwawt/macosx/CFileDialog", NO);
+ DECLARE_METHOD_RETURN(jm_queryFF, jc_CFileDialog, "queryFilenameFilter", "(Ljava/lang/String;)Z", NO);
+ BOOL returnValue = (*env)->CallBooleanMethod(env, fFileDialog, jm_queryFF, jString);
+ CHECK_EXCEPTION();
(*env)->DeleteLocalRef(env, jString);
return returnValue;
}
@@ -194,45 +195,45 @@
jboolean navigateApps, jboolean chooseDirectories, jboolean hasFilter,
jstring directory, jstring file)
{
jobjectArray returnValue = NULL;
-JNF_COCOA_ENTER(env);
- NSString *dialogTitle = JNFJavaToNSString(env, title);
+JNI_COCOA_ENTER(env);
+ NSString *dialogTitle = JavaStringToNSString(env, title);
if ([dialogTitle length] == 0) {
dialogTitle = @" ";
}
CFileDialog *dialogDelegate = [[CFileDialog alloc] initWithFilter:hasFilter
fileDialog:peer
title:dialogTitle
- directory:JNFJavaToNSString(env, directory)
- file:JNFJavaToNSString(env, file)
+ directory:JavaStringToNSString(env, directory)
+ file:JavaStringToNSString(env, file)
mode:mode
multipleMode:multipleMode
shouldNavigate:navigateApps
canChooseDirectories:chooseDirectories
withEnv:env];
- [JNFRunLoop performOnMainThread:@selector(safeSaveOrLoad)
+ [ThreadUtilities performOnMainThread:@selector(safeSaveOrLoad)
on:dialogDelegate
withObject:nil
waitUntilDone:YES];
if ([dialogDelegate userClickedOK]) {
NSArray *urls = [dialogDelegate URLs];
jsize count = [urls count];
- static JNF_CLASS_CACHE(jc_String, "java/lang/String");
- returnValue = JNFNewObjectArray(env, &jc_String, count);
+ DECLARE_CLASS_RETURN(jc_String, "java/lang/String", NULL);
+ returnValue = (*env)->NewObjectArray(env, count, jc_String, NULL);
[urls enumerateObjectsUsingBlock:^(id url, NSUInteger index, BOOL *stop) {
- jstring filename = JNFNormalizedJavaStringForPath(env, [url path]);
+ jstring filename = NormalizedPathJavaStringFromNSString(env, [url path]);
(*env)->SetObjectArrayElement(env, returnValue, index, filename);
(*env)->DeleteLocalRef(env, filename);
}];
}
[dialogDelegate release];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return returnValue;
}
< prev index next >