home *** CD-ROM | disk | FTP | other *** search
- package sun.awt;
-
- import java.awt.AWTEvent;
- import java.awt.AWTException;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.EventQueue;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.GraphicsDevice;
- import java.awt.Image;
- import java.awt.Robot;
- import java.awt.Toolkit;
- import java.awt.Window;
- import java.awt.event.WindowEvent;
- import java.awt.im.spi.InputMethodDescriptor;
- import java.awt.peer.RobotPeer;
- import java.io.FilePermission;
- import java.io.IOException;
- import java.net.SocketPermission;
- import java.net.URL;
- import java.security.Permission;
- import java.util.Collections;
- import java.util.EventObject;
- import java.util.Hashtable;
- import java.util.Map;
- import java.util.WeakHashMap;
- import sun.awt.font.FontDesignMetrics;
- import sun.awt.im.InputContext;
- import sun.awt.im.SimpleInputMethodWindow;
- import sun.awt.image.ByteArrayImageSource;
- import sun.awt.image.FileImageSource;
- import sun.awt.image.URLImageSource;
- import sun.misc.SoftCache;
-
- public abstract class SunToolkit extends Toolkit implements WindowClosingSupport, WindowClosingListener {
- private static boolean hotjavaUrlCache = false;
- private static final String POST_EVENT_QUEUE_KEY = "PostEventQueue";
- protected static final Hashtable peerMap = new Hashtable();
- private static final Map appContextMap = Collections.synchronizedMap(new WeakHashMap());
- public static FontMetrics[] lastMetrics = new FontMetrics[5];
- static SoftCache imgCache = new SoftCache();
- private transient WindowClosingListener windowClosingListener;
-
- public SunToolkit() {
- DebugHelper.init();
- this.windowClosingListener = null;
- String var2 = Toolkit.getProperty("AWT.EventQueueClass", "java.awt.EventQueue");
-
- EventQueue var1;
- try {
- var1 = (EventQueue)Class.forName(var2).newInstance();
- } catch (Exception var5) {
- System.err.println("Failed loading " + var2 + ": " + var5);
- var1 = new EventQueue();
- }
-
- AppContext var3 = AppContext.getAppContext();
- var3.put(AppContext.EVENT_QUEUE_KEY, var1);
- PostEventQueue var4 = new PostEventQueue(var1);
- var3.put("PostEventQueue", var4);
- }
-
- public static AppContext createNewAppContext() {
- ThreadGroup var0 = Thread.currentThread().getThreadGroup();
- String var2 = Toolkit.getProperty("AWT.EventQueueClass", "java.awt.EventQueue");
-
- EventQueue var1;
- try {
- var1 = (EventQueue)Class.forName(var2).newInstance();
- } catch (Exception var5) {
- System.err.println("Failed loading " + var2 + ": " + var5);
- var1 = new EventQueue();
- }
-
- AppContext var3 = new AppContext(var0);
- var3.put(AppContext.EVENT_QUEUE_KEY, var1);
- PostEventQueue var4 = new PostEventQueue(var1);
- var3.put("PostEventQueue", var4);
- return var3;
- }
-
- private static native Object getPrivateKey(Object var0);
-
- protected static Object targetToPeer(Object var0) {
- return var0 != null ? peerMap.get(getPrivateKey(var0)) : null;
- }
-
- protected static void targetCreatedPeer(Object var0, Object var1) {
- if (var0 != null && var1 != null) {
- peerMap.put(getPrivateKey(var0), var1);
- }
-
- }
-
- protected static void targetDisposedPeer(Object var0, Object var1) {
- if (var0 != null && var1 != null) {
- Object var2 = getPrivateKey(var0);
- if (peerMap.get(var2) == var1) {
- peerMap.remove(var2);
- }
- }
-
- }
-
- public static AppContext targetToAppContext(Object var0) {
- return var0 != null ? (AppContext)appContextMap.get(getPrivateKey(var0)) : null;
- }
-
- public static void insertTargetMapping(Object var0, AppContext var1) {
- appContextMap.put(getPrivateKey(var0), var1);
- }
-
- public static void postEvent(AppContext var0, AWTEvent var1) {
- PostEventQueue var2 = (PostEventQueue)var0.get("PostEventQueue");
- var2.postEvent(var1);
- }
-
- public void flushPendingEvents() {
- AppContext var1 = AppContext.getAppContext();
- PostEventQueue var2 = (PostEventQueue)var1.get("PostEventQueue");
- var2.flush();
- }
-
- public static void executeOnEventHandlerThread(Object var0, Runnable var1) {
- executeOnEventHandlerThread(new PeerEvent(var0, var1, 1L));
- }
-
- public static void executeOnEventHandlerThread(PeerEvent var0) {
- postEvent(targetToAppContext(((EventObject)var0).getSource()), var0);
- }
-
- public Dimension getScreenSize() {
- return new Dimension(this.getScreenWidth(), this.getScreenHeight());
- }
-
- protected abstract int getScreenWidth();
-
- protected abstract int getScreenHeight();
-
- public FontMetrics getFontMetrics(Font var1) {
- for(int var2 = 0; var2 < lastMetrics.length; ++var2) {
- FontMetrics var3 = lastMetrics[var2];
- if (var3 == null) {
- break;
- }
-
- if (var3.getFont() == var1) {
- return var3;
- }
- }
-
- FontDesignMetrics var4 = new FontDesignMetrics(var1);
- System.arraycopy(lastMetrics, 0, lastMetrics, 1, lastMetrics.length - 1);
- lastMetrics[0] = var4;
- return var4;
- }
-
- public String[] getFontList() {
- String[] var1 = new String[]{"Dialog", "SansSerif", "Serif", "Monospaced", "DialogInput"};
- return var1;
- }
-
- static synchronized Image getImageFromHash(Toolkit var0, URL var1) {
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null) {
- try {
- Permission var3 = var1.openConnection().getPermission();
- if (var3 != null) {
- try {
- var2.checkPermission(var3);
- } catch (SecurityException var6) {
- if (var3 instanceof FilePermission && var3.getActions().indexOf("read") != -1) {
- var2.checkRead(var3.getName());
- } else {
- if (!(var3 instanceof SocketPermission) || var3.getActions().indexOf("connect") == -1) {
- throw var6;
- }
-
- var2.checkConnect(var1.getHost(), var1.getPort());
- }
- }
- }
- } catch (IOException var7) {
- var2.checkConnect(var1.getHost(), var1.getPort());
- }
- }
-
- Image var8 = (Image)imgCache.get(var1);
- if (var8 == null) {
- try {
- var8 = var0.createImage(new URLImageSource(var1));
- imgCache.put(var1, var8);
- } catch (Exception var5) {
- }
- }
-
- return var8;
- }
-
- static synchronized Image getImageFromHash(Toolkit var0, String var1) {
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null) {
- var2.checkRead(var1);
- }
-
- Image var3 = (Image)imgCache.get(var1);
- if (var3 == null) {
- try {
- var3 = var0.createImage(new FileImageSource(var1));
- imgCache.put(var1, var3);
- } catch (Exception var5) {
- }
- }
-
- return var3;
- }
-
- public Image getImage(String var1) {
- return getImageFromHash(this, (String)var1);
- }
-
- public Image getImage(URL var1) {
- return getImageFromHash(this, (URL)var1);
- }
-
- public Image createImage(String var1) {
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null) {
- var2.checkRead(var1);
- }
-
- return ((Toolkit)this).createImage(new FileImageSource(var1));
- }
-
- public Image createImage(URL var1) {
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null) {
- try {
- Permission var3 = var1.openConnection().getPermission();
- if (var3 != null) {
- try {
- var2.checkPermission(var3);
- } catch (SecurityException var5) {
- if (var3 instanceof FilePermission && var3.getActions().indexOf("read") != -1) {
- var2.checkRead(var3.getName());
- } else {
- if (!(var3 instanceof SocketPermission) || var3.getActions().indexOf("connect") == -1) {
- throw var5;
- }
-
- var2.checkConnect(var1.getHost(), var1.getPort());
- }
- }
- }
- } catch (IOException var6) {
- var2.checkConnect(var1.getHost(), var1.getPort());
- }
- }
-
- return ((Toolkit)this).createImage(new URLImageSource(var1));
- }
-
- public Image createImage(byte[] var1, int var2, int var3) {
- return ((Toolkit)this).createImage(new ByteArrayImageSource(var1, var2, var3));
- }
-
- protected EventQueue getSystemEventQueueImpl() {
- AppContext var1 = AppContext.getAppContext();
- EventQueue var2 = (EventQueue)var1.get(AppContext.EVENT_QUEUE_KEY);
- return var2;
- }
-
- public abstract RobotPeer createRobot(Robot var1, GraphicsDevice var2) throws AWTException;
-
- public static Container getNativeContainer(Component var0) {
- return Toolkit.getNativeContainer(var0);
- }
-
- public abstract InputMethodDescriptor getInputMethodAdapterDescriptor() throws AWTException;
-
- public Window createInputMethodWindow(String var1, InputContext var2) {
- return new SimpleInputMethodWindow(var1, var2, false);
- }
-
- public boolean enableInputMethodsForTextComponent() {
- return false;
- }
-
- public Component getComponentFromNativeWindowHandle(int var1) {
- return null;
- }
-
- public int getNativeWindowHandleFromComponent(Component var1) {
- return 0;
- }
-
- public abstract String getDefaultCharacterEncoding();
-
- public abstract String getDefaultUnicodeEncoding();
-
- public WindowClosingListener getWindowClosingListener() {
- return this.windowClosingListener;
- }
-
- public void setWindowClosingListener(WindowClosingListener var1) {
- this.windowClosingListener = var1;
- }
-
- public RuntimeException windowClosingNotify(WindowEvent var1) {
- return this.windowClosingListener != null ? this.windowClosingListener.windowClosingNotify(var1) : null;
- }
-
- public RuntimeException windowClosingDelivered(WindowEvent var1) {
- return this.windowClosingListener != null ? this.windowClosingListener.windowClosingDelivered(var1) : null;
- }
-
- public abstract GlobalCursorManager getGlobalCursorManager();
- }
-