< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/JavaComponentAccessibility.m

Print this page




 306             jobject jkey = JNFGetObjectField(env, jchildJavaRole, sjf_key);
 307             childJavaRole = JNFJavaToNSString(env, jkey);
 308             (*env)->DeleteLocalRef(env, jkey);
 309         }
 310 
 311         JavaComponentAccessibility *child = [self createWithParent:parent accessible:jchild role:childJavaRole index:childIndex withEnv:env withView:parent->fView];
 312         
 313         (*env)->DeleteLocalRef(env, jchild);
 314         (*env)->DeleteLocalRef(env, jchildJavaRole);
 315         
 316         [children addObject:child];
 317         childIndex++;
 318     }
 319     (*env)->DeleteLocalRef(env, jchildrenAndRoles);
 320     
 321     return children;
 322 }
 323 
 324 + (JavaComponentAccessibility *)createWithAccessible:(jobject)jaccessible withEnv:(JNIEnv *)env withView:(NSView *)view
 325 {

 326     jobject jcomponent = [(AWTView *)view awtComponent:env];
 327     jint index = JNFCallStaticIntMethod(env, sjm_getAccessibleIndexInParent, jaccessible, jcomponent);

 328     NSString *javaRole = getJavaRole(env, jaccessible, jcomponent);


 329     (*env)->DeleteLocalRef(env, jcomponent);
 330     return [self createWithAccessible:jaccessible role:javaRole index:index withEnv:env withView:view];
 331 }
 332 
 333 + (JavaComponentAccessibility *) createWithAccessible:(jobject)jaccessible role:(NSString *)javaRole index:(jint)index withEnv:(JNIEnv *)env withView:(NSView *)view
 334 {
 335     return [self createWithParent:nil accessible:jaccessible role:javaRole index:index withEnv:env withView:view];
 336 }
 337 
 338 + (JavaComponentAccessibility *) createWithParent:(JavaComponentAccessibility *)parent accessible:(jobject)jaccessible role:(NSString *)javaRole index:(jint)index withEnv:(JNIEnv *)env withView:(NSView *)view
 339 {
 340     // try to fetch the jCAX from Java, and return autoreleased
 341     jobject jCAX = [JavaComponentAccessibility getCAccessible:jaccessible withEnv:env];
 342     if (jCAX == NULL) return nil;
 343     JavaComponentAccessibility *value = (JavaComponentAccessibility *) jlong_to_ptr(JNFGetLongField(env, jCAX, jf_ptr));
 344     if (value != nil) {
 345         (*env)->DeleteLocalRef(env, jCAX);
 346         return [[value retain] autorelease];
 347     }
 348 
 349     // otherwise, create a new instance
 350     JavaComponentAccessibility *newChild = nil;




 306             jobject jkey = JNFGetObjectField(env, jchildJavaRole, sjf_key);
 307             childJavaRole = JNFJavaToNSString(env, jkey);
 308             (*env)->DeleteLocalRef(env, jkey);
 309         }
 310 
 311         JavaComponentAccessibility *child = [self createWithParent:parent accessible:jchild role:childJavaRole index:childIndex withEnv:env withView:parent->fView];
 312         
 313         (*env)->DeleteLocalRef(env, jchild);
 314         (*env)->DeleteLocalRef(env, jchildJavaRole);
 315         
 316         [children addObject:child];
 317         childIndex++;
 318     }
 319     (*env)->DeleteLocalRef(env, jchildrenAndRoles);
 320     
 321     return children;
 322 }
 323 
 324 + (JavaComponentAccessibility *)createWithAccessible:(jobject)jaccessible withEnv:(JNIEnv *)env withView:(NSView *)view
 325 {
 326     JavaComponentAccessibility *ret = nil;
 327     jobject jcomponent = [(AWTView *)view awtComponent:env];
 328     jint index = JNFCallStaticIntMethod(env, sjm_getAccessibleIndexInParent, jaccessible, jcomponent);
 329     if (index >= 0) {
 330       NSString *javaRole = getJavaRole(env, jaccessible, jcomponent);
 331       ret = [self createWithAccessible:jaccessible role:javaRole index:index withEnv:env withView:view];
 332     }
 333     (*env)->DeleteLocalRef(env, jcomponent);
 334     return ret;
 335 }
 336 
 337 + (JavaComponentAccessibility *) createWithAccessible:(jobject)jaccessible role:(NSString *)javaRole index:(jint)index withEnv:(JNIEnv *)env withView:(NSView *)view
 338 {
 339     return [self createWithParent:nil accessible:jaccessible role:javaRole index:index withEnv:env withView:view];
 340 }
 341 
 342 + (JavaComponentAccessibility *) createWithParent:(JavaComponentAccessibility *)parent accessible:(jobject)jaccessible role:(NSString *)javaRole index:(jint)index withEnv:(JNIEnv *)env withView:(NSView *)view
 343 {
 344     // try to fetch the jCAX from Java, and return autoreleased
 345     jobject jCAX = [JavaComponentAccessibility getCAccessible:jaccessible withEnv:env];
 346     if (jCAX == NULL) return nil;
 347     JavaComponentAccessibility *value = (JavaComponentAccessibility *) jlong_to_ptr(JNFGetLongField(env, jCAX, jf_ptr));
 348     if (value != nil) {
 349         (*env)->DeleteLocalRef(env, jCAX);
 350         return [[value retain] autorelease];
 351     }
 352 
 353     // otherwise, create a new instance
 354     JavaComponentAccessibility *newChild = nil;


< prev index next >