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