61 |
61 |
62 JNIEnv* env = [ThreadUtilities getJNIEnv]; |
62 JNIEnv* env = [ThreadUtilities getJNIEnv]; |
63 |
63 |
64 jobject fCompLocal = (*env)->NewLocalRef(env, fComponent); |
64 jobject fCompLocal = (*env)->NewLocalRef(env, fComponent); |
65 if ((*env)->IsSameObject(env, fCompLocal, NULL)) { |
65 if ((*env)->IsSameObject(env, fCompLocal, NULL)) { |
66 return @"unknown"; |
66 return nil; |
67 } |
67 } |
68 NSString *str = nil; |
68 NSString *str = nil; |
69 jobject jstr = JNFCallStaticObjectMethod(env, jm_getAccessibleActionDescription, fAccessibleAction, fIndex, fCompLocal); |
69 jstring jstr = JNFCallStaticObjectMethod( env, |
|
70 jm_getAccessibleActionDescription, |
|
71 fAccessibleAction, |
|
72 fIndex, |
|
73 fCompLocal ); |
70 if (jstr != NULL) { |
74 if (jstr != NULL) { |
71 NSString *str = JNFJavaToNSString(env, jstr); // AWT_THREADING Safe (AWTRunLoopMode) |
75 str = JNFJavaToNSString(env, jstr); // AWT_THREADING Safe (AWTRunLoopMode) |
72 (*env)->DeleteLocalRef(env, jstr); |
76 (*env)->DeleteLocalRef(env, jstr); |
73 } |
77 } |
74 (*env)->DeleteLocalRef(env, fCompLocal); |
78 (*env)->DeleteLocalRef(env, fCompLocal); |
75 return str == nil ? @"unknown" : str; |
79 return str; |
76 } |
80 } |
77 |
81 |
78 - (void)perform |
82 - (void)perform |
79 { |
83 { |
80 static JNF_STATIC_MEMBER_CACHE(jm_doAccessibleAction, sjc_CAccessibility, "doAccessibleAction", "(Ljavax/accessibility/AccessibleAction;ILjava/awt/Component;)V"); |
84 static JNF_STATIC_MEMBER_CACHE(jm_doAccessibleAction, sjc_CAccessibility, "doAccessibleAction", "(Ljavax/accessibility/AccessibleAction;ILjava/awt/Component;)V"); |