jdk/src/solaris/classes/sun/awt/X11/XWindow.java
changeset 13604 31089af1a447
parent 10096 f9ac9a52952d
child 14163 87f1bc730fe2
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Tue Jul 31 21:01:56 2012 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Thu Aug 30 13:11:23 2012 -0700
@@ -126,10 +126,6 @@
     native void getWindowBounds(long window, long x, long y, long width, long height);
     private native static void initIDs();
 
-    private static Field isPostedField;
-    private static Field rawCodeField;
-    private static Field primaryLevelUnicodeField;
-    private static Field extendedKeyCodeField;
     static {
         initIDs();
     }
@@ -398,20 +394,11 @@
 
     static Method m_sendMessage;
     static void sendEvent(final AWTEvent e) {
-        if (isPostedField == null) {
-            isPostedField = SunToolkit.getField(AWTEvent.class, "isPosted");
-        }
         // The uses of this method imply that the incoming event is system-generated
         SunToolkit.setSystemGenerated(e);
         PeerEvent pe = new PeerEvent(Toolkit.getDefaultToolkit(), new Runnable() {
                 public void run() {
-                    try {
-                        isPostedField.setBoolean(e, true);
-                    } catch (IllegalArgumentException e) {
-                        assert(false);
-                    } catch (IllegalAccessException e) {
-                        assert(false);
-                    }
+                    AWTAccessor.getAWTEventAccessor().setPosted(e);
                     ((Component)e.getSource()).dispatchEvent(e);
                 }
             }, PeerEvent.ULTIMATE_PRIORITY_EVENT);
@@ -1428,16 +1415,8 @@
     }
 
 
-    static Field bdata;
     static void setBData(KeyEvent e, byte[] data) {
-        try {
-            if (bdata == null) {
-                bdata = SunToolkit.getField(java.awt.AWTEvent.class, "bdata");
-            }
-            bdata.set(e, data);
-        } catch (IllegalAccessException ex) {
-            assert false;
-        }
+        AWTAccessor.getAWTEventAccessor().setBData(e, data);
     }
 
     public void postKeyEvent(int id, long when, int keyCode, int keyChar,
@@ -1447,15 +1426,6 @@
     {
         long jWhen = XToolkit.nowMillisUTC_offset(when);
         int modifiers = getModifiers(state, 0, keyCode);
-        if (rawCodeField == null) {
-            rawCodeField = XToolkit.getField(KeyEvent.class, "rawCode");
-        }
-        if (primaryLevelUnicodeField == null) {
-            primaryLevelUnicodeField = XToolkit.getField(KeyEvent.class, "primaryLevelUnicode");
-        }
-        if (extendedKeyCodeField == null) {
-            extendedKeyCodeField = XToolkit.getField(KeyEvent.class, "extendedKeyCode");
-        }
 
         KeyEvent ke = new KeyEvent((Component)getEventSource(), id, jWhen,
                                    modifiers, keyCode, (char)keyChar, keyLocation);
@@ -1463,15 +1433,11 @@
             byte[] data = Native.toBytes(event, eventSize);
             setBData(ke, data);
         }
-        try {
-            rawCodeField.set(ke, rawCode);
-            primaryLevelUnicodeField.set(ke, (long)unicodeFromPrimaryKeysym);
-            extendedKeyCodeField.set(ke, (long)extendedKeyCode);
-        } catch (IllegalArgumentException e) {
-            assert(false);
-        } catch (IllegalAccessException e) {
-            assert(false);
-        }
+
+        AWTAccessor.KeyEventAccessor kea = AWTAccessor.getKeyEventAccessor();
+        kea.setRawCode(ke, rawCode);
+        kea.setPrimaryLevelUnicode(ke, (long)unicodeFromPrimaryKeysym);
+        kea.setExtendedKeyCode(ke, (long)extendedKeyCode);
         postEventToEventQueue(ke);
     }