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 }
|