< prev index next >

src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java

Print this page

        

@@ -84,10 +84,19 @@
             return LWCToolkit.invokeAndWait(callable, c);
         } catch (final Exception e) { e.printStackTrace(); }
         return null;
     }
 
+    static <T> T invokeAndWait(final Callable<T> callable, final Component c, final T defValue) {
+        T value = null;
+        try {
+            value = LWCToolkit.invokeAndWait(callable, c);
+        } catch (final Exception e) { e.printStackTrace(); }
+
+        return value != null ? value : defValue;
+    }
+
     static void invokeLater(final Runnable runnable, final Component c) {
         try {
             LWCToolkit.invokeLater(runnable, c);
         } catch (InvocationTargetException e) { e.printStackTrace(); }
     }

@@ -179,11 +188,11 @@
                 final AccessibleSelection as = ac.getAccessibleSelection();
                 if (as == null) return Boolean.FALSE;
 
                 return as.isAccessibleChildSelected(index);
             }
-        }, c);
+        }, c, false);
     }
 
     public static AccessibleStateSet getAccessibleStateSet(final AccessibleContext ac, final Component c) {
         if (ac == null) return null;
 

@@ -201,11 +210,11 @@
             public Boolean call() throws Exception {
                 final AccessibleStateSet ass = ac.getAccessibleStateSet();
                 if (ass == null) return null;
                 return ass.contains(as);
             }
-        }, c);
+        }, c, false);
     }
 
     static String getAccessibleRoleFor(final Accessible a) {
         final AccessibleContext ac = a.getAccessibleContext();
         if (ac == null) return null;

@@ -246,11 +255,11 @@
 
         return invokeAndWait(new Callable<Integer>() {
             public Integer call() throws Exception {
                 return at.getCharCount();
             }
-        }, c);
+        }, c, 0);
     }
 
     // Accessibility Threadsafety for JavaComponentAccessibility.m
     public static Accessible getAccessibleParent(final Accessible a, final Component c) {
         if (a == null) return null;

@@ -271,11 +280,11 @@
             public Integer call() throws Exception {
                 final AccessibleContext ac = a.getAccessibleContext();
                 if (ac == null) return null;
                 return ac.getAccessibleIndexInParent();
             }
-        }, c);
+        }, c, -1);
     }
 
     public static AccessibleComponent getAccessibleComponent(final Accessible a, final Component c) {
         if (a == null) return null;
 

@@ -367,11 +376,11 @@
                 final AccessibleComponent aComp = ac.getAccessibleComponent();
                 if (aComp == null) return null;
 
                 return aComp.isFocusTraversable();
             }
-        }, c);
+        }, c, false);
     }
 
     public static Accessible accessibilityHitTest(final Container parent, final float hitPointX, final float hitPointY) {
         return invokeAndWait(new Callable<Accessible>() {
             public Accessible call() throws Exception {

@@ -426,11 +435,11 @@
                 final AccessibleComponent aComp = ac.getAccessibleComponent();
                 if (aComp == null) return null;
 
                 return aComp.isEnabled();
             }
-        }, c);
+        }, c, false);
     }
 
     // KCH - can we make this a postEvent instead?
     public static void requestFocus(final Accessible a, final Component c) {
         if (a == null) return;
< prev index next >