src/java.desktop/share/classes/sun/awt/AWTAccessor.java

Print this page




  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.awt;
  27 
  28 import sun.misc.Unsafe;
  29 
  30 import javax.accessibility.AccessibleContext;
  31 import java.awt.*;


  32 import java.awt.event.InputEvent;
  33 import java.awt.event.InvocationEvent;
  34 import java.awt.event.KeyEvent;
  35 import java.awt.geom.Point2D;
  36 import java.awt.image.BufferStrategy;
  37 import java.awt.peer.ComponentPeer;
  38 
  39 import java.awt.peer.MenuComponentPeer;
  40 import java.lang.reflect.InvocationTargetException;
  41 import java.security.AccessControlContext;
  42 
  43 import java.io.File;
  44 import java.util.ResourceBundle;
  45 import java.util.Vector;
  46 
  47 /**
  48  * The AWTAccessor utility class.
  49  * The main purpose of this class is to enable accessing
  50  * private and package-private fields of classes from
  51  * different classes/packages. See sun.misc.SharedSecretes


 768     public interface InvocationEventAccessor {
 769         void dispose(InvocationEvent event);
 770     }
 771 
 772     /*
 773      * An accessor object for the SystemColor class
 774      */
 775     public interface SystemColorAccessor {
 776         void updateSystemColors();
 777     }
 778 
 779     /*
 780      * An accessor object for the AccessibleContext class
 781      */
 782     public interface AccessibleContextAccessor {
 783         void setAppContext(AccessibleContext accessibleContext, AppContext appContext);
 784         AppContext getAppContext(AccessibleContext accessibleContext);
 785     }
 786 
 787     /*










 788      * Accessor instances are initialized in the static initializers of
 789      * corresponding AWT classes by using setters defined below.
 790      */
 791     private static ComponentAccessor componentAccessor;
 792     private static ContainerAccessor containerAccessor;
 793     private static WindowAccessor windowAccessor;
 794     private static AWTEventAccessor awtEventAccessor;
 795     private static InputEventAccessor inputEventAccessor;
 796     private static FrameAccessor frameAccessor;
 797     private static KeyboardFocusManagerAccessor kfmAccessor;
 798     private static MenuComponentAccessor menuComponentAccessor;
 799     private static EventQueueAccessor eventQueueAccessor;
 800     private static PopupMenuAccessor popupMenuAccessor;
 801     private static FileDialogAccessor fileDialogAccessor;
 802     private static ScrollPaneAdjustableAccessor scrollPaneAdjustableAccessor;
 803     private static CheckboxMenuItemAccessor checkboxMenuItemAccessor;
 804     private static CursorAccessor cursorAccessor;
 805     private static MenuBarAccessor menuBarAccessor;
 806     private static MenuItemAccessor menuItemAccessor;
 807     private static MenuAccessor menuAccessor;
 808     private static KeyEventAccessor keyEventAccessor;
 809     private static ClientPropertyKeyAccessor clientPropertyKeyAccessor;
 810     private static SystemTrayAccessor systemTrayAccessor;
 811     private static TrayIconAccessor trayIconAccessor;
 812     private static DefaultKeyboardFocusManagerAccessor defaultKeyboardFocusManagerAccessor;
 813     private static SequencedEventAccessor sequencedEventAccessor;
 814     private static ToolkitAccessor toolkitAccessor;
 815     private static InvocationEventAccessor invocationEventAccessor;
 816     private static SystemColorAccessor systemColorAccessor;
 817     private static AccessibleContextAccessor accessibleContextAccessor;

 818 
 819     /*
 820      * Set an accessor object for the java.awt.Component class.
 821      */
 822     public static void setComponentAccessor(ComponentAccessor ca) {
 823         componentAccessor = ca;
 824     }
 825 
 826     /*
 827      * Retrieve the accessor object for the java.awt.Component class.
 828      */
 829     public static ComponentAccessor getComponentAccessor() {
 830         if (componentAccessor == null) {
 831             unsafe.ensureClassInitialized(Component.class);
 832         }
 833 
 834         return componentAccessor;
 835     }
 836 
 837     /*


1258      public static void setSystemColorAccessor(SystemColorAccessor systemColorAccessor) {
1259          AWTAccessor.systemColorAccessor = systemColorAccessor;
1260      }
1261 
1262     /*
1263      * Get the accessor object for the javax.accessibility.AccessibleContext class.
1264      */
1265     public static AccessibleContextAccessor getAccessibleContextAccessor() {
1266         if (accessibleContextAccessor == null) {
1267             unsafe.ensureClassInitialized(AccessibleContext.class);
1268         }
1269         return accessibleContextAccessor;
1270     }
1271 
1272    /*
1273     * Set the accessor object for the javax.accessibility.AccessibleContext class.
1274     */
1275     public static void setAccessibleContextAccessor(AccessibleContextAccessor accessor) {
1276         AWTAccessor.accessibleContextAccessor = accessor;
1277     }


















1278 }


  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.awt;
  27 
  28 import sun.misc.Unsafe;
  29 
  30 import javax.accessibility.AccessibleContext;
  31 import java.awt.*;
  32 import java.awt.dnd.DragSourceContext;
  33 import java.awt.dnd.peer.DragSourceContextPeer;
  34 import java.awt.event.InputEvent;
  35 import java.awt.event.InvocationEvent;
  36 import java.awt.event.KeyEvent;
  37 import java.awt.geom.Point2D;
  38 import java.awt.image.BufferStrategy;
  39 import java.awt.peer.ComponentPeer;
  40 
  41 import java.awt.peer.MenuComponentPeer;
  42 import java.lang.reflect.InvocationTargetException;
  43 import java.security.AccessControlContext;
  44 
  45 import java.io.File;
  46 import java.util.ResourceBundle;
  47 import java.util.Vector;
  48 
  49 /**
  50  * The AWTAccessor utility class.
  51  * The main purpose of this class is to enable accessing
  52  * private and package-private fields of classes from
  53  * different classes/packages. See sun.misc.SharedSecretes


 770     public interface InvocationEventAccessor {
 771         void dispose(InvocationEvent event);
 772     }
 773 
 774     /*
 775      * An accessor object for the SystemColor class
 776      */
 777     public interface SystemColorAccessor {
 778         void updateSystemColors();
 779     }
 780 
 781     /*
 782      * An accessor object for the AccessibleContext class
 783      */
 784     public interface AccessibleContextAccessor {
 785         void setAppContext(AccessibleContext accessibleContext, AppContext appContext);
 786         AppContext getAppContext(AccessibleContext accessibleContext);
 787     }
 788 
 789     /*
 790      * An accessor object for the DragSourceContext class
 791      */
 792     public interface DragSourceContextAccessor {
 793         /**
 794          * Returns the peer of the DragSourceContext.
 795          */
 796         DragSourceContextPeer getPeer(DragSourceContext dsc);
 797     }
 798 
 799     /*
 800      * Accessor instances are initialized in the static initializers of
 801      * corresponding AWT classes by using setters defined below.
 802      */
 803     private static ComponentAccessor componentAccessor;
 804     private static ContainerAccessor containerAccessor;
 805     private static WindowAccessor windowAccessor;
 806     private static AWTEventAccessor awtEventAccessor;
 807     private static InputEventAccessor inputEventAccessor;
 808     private static FrameAccessor frameAccessor;
 809     private static KeyboardFocusManagerAccessor kfmAccessor;
 810     private static MenuComponentAccessor menuComponentAccessor;
 811     private static EventQueueAccessor eventQueueAccessor;
 812     private static PopupMenuAccessor popupMenuAccessor;
 813     private static FileDialogAccessor fileDialogAccessor;
 814     private static ScrollPaneAdjustableAccessor scrollPaneAdjustableAccessor;
 815     private static CheckboxMenuItemAccessor checkboxMenuItemAccessor;
 816     private static CursorAccessor cursorAccessor;
 817     private static MenuBarAccessor menuBarAccessor;
 818     private static MenuItemAccessor menuItemAccessor;
 819     private static MenuAccessor menuAccessor;
 820     private static KeyEventAccessor keyEventAccessor;
 821     private static ClientPropertyKeyAccessor clientPropertyKeyAccessor;
 822     private static SystemTrayAccessor systemTrayAccessor;
 823     private static TrayIconAccessor trayIconAccessor;
 824     private static DefaultKeyboardFocusManagerAccessor defaultKeyboardFocusManagerAccessor;
 825     private static SequencedEventAccessor sequencedEventAccessor;
 826     private static ToolkitAccessor toolkitAccessor;
 827     private static InvocationEventAccessor invocationEventAccessor;
 828     private static SystemColorAccessor systemColorAccessor;
 829     private static AccessibleContextAccessor accessibleContextAccessor;
 830     private static DragSourceContextAccessor dragSourceContextAccessor;
 831 
 832     /*
 833      * Set an accessor object for the java.awt.Component class.
 834      */
 835     public static void setComponentAccessor(ComponentAccessor ca) {
 836         componentAccessor = ca;
 837     }
 838 
 839     /*
 840      * Retrieve the accessor object for the java.awt.Component class.
 841      */
 842     public static ComponentAccessor getComponentAccessor() {
 843         if (componentAccessor == null) {
 844             unsafe.ensureClassInitialized(Component.class);
 845         }
 846 
 847         return componentAccessor;
 848     }
 849 
 850     /*


1271      public static void setSystemColorAccessor(SystemColorAccessor systemColorAccessor) {
1272          AWTAccessor.systemColorAccessor = systemColorAccessor;
1273      }
1274 
1275     /*
1276      * Get the accessor object for the javax.accessibility.AccessibleContext class.
1277      */
1278     public static AccessibleContextAccessor getAccessibleContextAccessor() {
1279         if (accessibleContextAccessor == null) {
1280             unsafe.ensureClassInitialized(AccessibleContext.class);
1281         }
1282         return accessibleContextAccessor;
1283     }
1284 
1285    /*
1286     * Set the accessor object for the javax.accessibility.AccessibleContext class.
1287     */
1288     public static void setAccessibleContextAccessor(AccessibleContextAccessor accessor) {
1289         AWTAccessor.accessibleContextAccessor = accessor;
1290     }
1291 
1292     /*
1293      * Get the accessor object for the java.awt.dnd.DragSourceContext class.
1294      */
1295     public static DragSourceContextAccessor getDragSourceContextAccessor() {
1296         if (dragSourceContextAccessor == null) {
1297             unsafe.ensureClassInitialized(DragSourceContext.class);
1298         }
1299         return dragSourceContextAccessor;
1300     }
1301 
1302     /*
1303      * Set the accessor object for the java.awt.dnd.DragSourceContext class.
1304      */
1305     public static void setDragSourceContextAccessor(DragSourceContextAccessor accessor) {
1306         AWTAccessor.dragSourceContextAccessor = accessor;
1307     }
1308 
1309 }