src/macosx/native/sun/awt/CFileDialog.m
Print this page
@@ -115,18 +115,20 @@
[thePanel setDelegate:self];
fPanelResult = [thePanel runModalForDirectory:fDirectory file:fFile];
[thePanel setDelegate:nil];
+ if ([self userClickedOK]) {
if (fMode == java_awt_FileDialog_LOAD) {
NSOpenPanel *openPanel = (NSOpenPanel *)thePanel;
fURLs = [openPanel URLs];
} else {
fURLs = [NSArray arrayWithObject:[thePanel URL]];
}
[fURLs retain];
}
+ }
[self disposer];
}
- (BOOL) askFilenameFilter:(NSString *)filename {
@@ -211,16 +213,15 @@
jclass stringClass = (*env)->FindClass(env, "java/lang/String");
returnValue = (*env)->NewObjectArray(env, count, stringClass, NULL);
(*env)->DeleteLocalRef(env, stringClass);
- NSUInteger i;
- for (i = 0; i < count; i++) {
- jstring filename = JNFNSToJavaString(env, [[urls objectAtIndex:i] absoluteString]);
- (*env)->SetObjectArrayElement(env, returnValue, i, filename);
+ [urls enumerateObjectsUsingBlock:^(id url, NSUInteger index, BOOL *stop) {
+ jstring filename = JNFNormalizedJavaStringForPath(env, [url path]);
+ (*env)->SetObjectArrayElement(env, returnValue, index, filename);
(*env)->DeleteLocalRef(env, filename);
- }
+ }];
}
[dialogDelegate release];
JNF_COCOA_EXIT(env);
return returnValue;