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

Print this page




  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 java.awt.*;
  29 import java.awt.KeyboardFocusManager;
  30 import java.awt.DefaultKeyboardFocusManager;
  31 import java.awt.event.InputEvent;
  32 import java.awt.event.KeyEvent;
  33 import java.awt.geom.Point2D;
  34 
  35 import sun.misc.Unsafe;
  36 import java.awt.peer.ComponentPeer;
  37 
  38 import java.lang.reflect.InvocationTargetException;
  39 import java.security.AccessControlContext;
  40 
  41 import java.io.File;

  42 import java.util.Vector;
  43 
  44 /**
  45  * The AWTAccessor utility class.
  46  * The main purpose of this class is to enable accessing
  47  * private and package-private fields of classes from
  48  * different classes/packages. See sun.misc.SharedSecretes
  49  * for another example.
  50  */
  51 public final class AWTAccessor {
  52 
  53     private static final Unsafe unsafe = Unsafe.getUnsafe();
  54 
  55     /*
  56      * We don't need any objects of this class.
  57      * It's rather a collection of static methods
  58      * and interfaces.
  59      */
  60     private AWTAccessor() {
  61     }


 678     public interface DefaultKeyboardFocusManagerAccessor {
 679         public void consumeNextKeyTyped(DefaultKeyboardFocusManager dkfm, KeyEvent e);
 680     }
 681 
 682     /*
 683      * An accessor for the SequencedEventAccessor class
 684      */
 685     public interface SequencedEventAccessor {
 686         /*
 687          * Returns the nested event.
 688          */
 689         AWTEvent getNested(AWTEvent sequencedEvent);
 690 
 691         /*
 692          * Returns true if the event is an instances of SequencedEvent.
 693          */
 694         boolean isSequencedEvent(AWTEvent event);
 695     }
 696 
 697     /*







 698      * Accessor instances are initialized in the static initializers of
 699      * corresponding AWT classes by using setters defined below.
 700      */
 701     private static ComponentAccessor componentAccessor;
 702     private static ContainerAccessor containerAccessor;
 703     private static WindowAccessor windowAccessor;
 704     private static AWTEventAccessor awtEventAccessor;
 705     private static InputEventAccessor inputEventAccessor;
 706     private static FrameAccessor frameAccessor;
 707     private static KeyboardFocusManagerAccessor kfmAccessor;
 708     private static MenuComponentAccessor menuComponentAccessor;
 709     private static EventQueueAccessor eventQueueAccessor;
 710     private static PopupMenuAccessor popupMenuAccessor;
 711     private static FileDialogAccessor fileDialogAccessor;
 712     private static ScrollPaneAdjustableAccessor scrollPaneAdjustableAccessor;
 713     private static CheckboxMenuItemAccessor checkboxMenuItemAccessor;
 714     private static CursorAccessor cursorAccessor;
 715     private static MenuBarAccessor menuBarAccessor;
 716     private static MenuItemAccessor menuItemAccessor;
 717     private static MenuAccessor menuAccessor;
 718     private static KeyEventAccessor keyEventAccessor;
 719     private static ClientPropertyKeyAccessor clientPropertyKeyAccessor;
 720     private static SystemTrayAccessor systemTrayAccessor;
 721     private static TrayIconAccessor trayIconAccessor;
 722     private static DefaultKeyboardFocusManagerAccessor defaultKeyboardFocusManagerAccessor;
 723     private static SequencedEventAccessor sequencedEventAccessor;

 724 
 725     /*
 726      * Set an accessor object for the java.awt.Component class.
 727      */
 728     public static void setComponentAccessor(ComponentAccessor ca) {
 729         componentAccessor = ca;
 730     }
 731 
 732     /*
 733      * Retrieve the accessor object for the java.awt.Component class.
 734      */
 735     public static ComponentAccessor getComponentAccessor() {
 736         if (componentAccessor == null) {
 737             unsafe.ensureClassInitialized(Component.class);
 738         }
 739 
 740         return componentAccessor;
 741     }
 742 
 743     /*


1098         }
1099         return defaultKeyboardFocusManagerAccessor;
1100     }
1101 
1102     /*
1103      * Set an accessor object for the java.awt.SequencedEvent class.
1104      */
1105     public static void setSequencedEventAccessor(SequencedEventAccessor sea) {
1106         sequencedEventAccessor = sea;
1107     }
1108 
1109     /*
1110      * Get the accessor object for the java.awt.SequencedEvent class.
1111      */
1112     public static SequencedEventAccessor getSequencedEventAccessor() {
1113         // The class is not public. So we can't ensure it's initialized.
1114         // Null returned value means it's not initialized
1115         // (so not a single instance of the event has been created).
1116         return sequencedEventAccessor;
1117     }


















1118 }


  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 java.awt.*;
  29 import java.awt.KeyboardFocusManager;
  30 import java.awt.DefaultKeyboardFocusManager;
  31 import java.awt.event.InputEvent;
  32 import java.awt.event.KeyEvent;
  33 import java.awt.geom.Point2D;
  34 
  35 import sun.misc.Unsafe;
  36 import java.awt.peer.ComponentPeer;
  37 
  38 import java.lang.reflect.InvocationTargetException;
  39 import java.security.AccessControlContext;
  40 
  41 import java.io.File;
  42 import java.util.ResourceBundle;
  43 import java.util.Vector;
  44 
  45 /**
  46  * The AWTAccessor utility class.
  47  * The main purpose of this class is to enable accessing
  48  * private and package-private fields of classes from
  49  * different classes/packages. See sun.misc.SharedSecretes
  50  * for another example.
  51  */
  52 public final class AWTAccessor {
  53 
  54     private static final Unsafe unsafe = Unsafe.getUnsafe();
  55 
  56     /*
  57      * We don't need any objects of this class.
  58      * It's rather a collection of static methods
  59      * and interfaces.
  60      */
  61     private AWTAccessor() {
  62     }


 679     public interface DefaultKeyboardFocusManagerAccessor {
 680         public void consumeNextKeyTyped(DefaultKeyboardFocusManager dkfm, KeyEvent e);
 681     }
 682 
 683     /*
 684      * An accessor for the SequencedEventAccessor class
 685      */
 686     public interface SequencedEventAccessor {
 687         /*
 688          * Returns the nested event.
 689          */
 690         AWTEvent getNested(AWTEvent sequencedEvent);
 691 
 692         /*
 693          * Returns true if the event is an instances of SequencedEvent.
 694          */
 695         boolean isSequencedEvent(AWTEvent event);
 696     }
 697     
 698     /*
 699      *An accessor for the toolkit class
 700      */
 701     public interface ToolkitAccessor {
 702         void setPlatformResources(ResourceBundle bundle);
 703     }
 704 
 705     /*
 706      * Accessor instances are initialized in the static initializers of
 707      * corresponding AWT classes by using setters defined below.
 708      */
 709     private static ComponentAccessor componentAccessor;
 710     private static ContainerAccessor containerAccessor;
 711     private static WindowAccessor windowAccessor;
 712     private static AWTEventAccessor awtEventAccessor;
 713     private static InputEventAccessor inputEventAccessor;
 714     private static FrameAccessor frameAccessor;
 715     private static KeyboardFocusManagerAccessor kfmAccessor;
 716     private static MenuComponentAccessor menuComponentAccessor;
 717     private static EventQueueAccessor eventQueueAccessor;
 718     private static PopupMenuAccessor popupMenuAccessor;
 719     private static FileDialogAccessor fileDialogAccessor;
 720     private static ScrollPaneAdjustableAccessor scrollPaneAdjustableAccessor;
 721     private static CheckboxMenuItemAccessor checkboxMenuItemAccessor;
 722     private static CursorAccessor cursorAccessor;
 723     private static MenuBarAccessor menuBarAccessor;
 724     private static MenuItemAccessor menuItemAccessor;
 725     private static MenuAccessor menuAccessor;
 726     private static KeyEventAccessor keyEventAccessor;
 727     private static ClientPropertyKeyAccessor clientPropertyKeyAccessor;
 728     private static SystemTrayAccessor systemTrayAccessor;
 729     private static TrayIconAccessor trayIconAccessor;
 730     private static DefaultKeyboardFocusManagerAccessor defaultKeyboardFocusManagerAccessor;
 731     private static SequencedEventAccessor sequencedEventAccessor;
 732     private static ToolkitAccessor toolkitAccessor;
 733 
 734     /*
 735      * Set an accessor object for the java.awt.Component class.
 736      */
 737     public static void setComponentAccessor(ComponentAccessor ca) {
 738         componentAccessor = ca;
 739     }
 740 
 741     /*
 742      * Retrieve the accessor object for the java.awt.Component class.
 743      */
 744     public static ComponentAccessor getComponentAccessor() {
 745         if (componentAccessor == null) {
 746             unsafe.ensureClassInitialized(Component.class);
 747         }
 748 
 749         return componentAccessor;
 750     }
 751 
 752     /*


1107         }
1108         return defaultKeyboardFocusManagerAccessor;
1109     }
1110 
1111     /*
1112      * Set an accessor object for the java.awt.SequencedEvent class.
1113      */
1114     public static void setSequencedEventAccessor(SequencedEventAccessor sea) {
1115         sequencedEventAccessor = sea;
1116     }
1117 
1118     /*
1119      * Get the accessor object for the java.awt.SequencedEvent class.
1120      */
1121     public static SequencedEventAccessor getSequencedEventAccessor() {
1122         // The class is not public. So we can't ensure it's initialized.
1123         // Null returned value means it's not initialized
1124         // (so not a single instance of the event has been created).
1125         return sequencedEventAccessor;
1126     }
1127     
1128     /*
1129      * Set an accessor object for the java.awt.Toolkit class.
1130      */
1131     public static void setToolkitAccessor(ToolkitAccessor ta) {
1132         toolkitAccessor = ta;
1133     }
1134     
1135     /*
1136      * Get the accessor object for the java.awt.Toolkit class.
1137      */
1138     public static ToolkitAccessor getToolkitAccessor() {
1139         if (toolkitAccessor == null) {
1140             unsafe.ensureClassInitialized(Toolkit.class);
1141         }
1142         
1143         return toolkitAccessor;
1144     }
1145 }