home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.EventQueue;
- import java.awt.Toolkit;
- import java.awt.Window;
- import java.awt.event.InvocationEvent;
- import java.util.Collections;
- import java.util.Map;
- import java.util.WeakHashMap;
- import sun.awt.AppContext;
- import sun.awt.SunToolkit;
-
- class SystemEventQueueUtilities {
- private static final Object classLock = new Object();
- private static final Object rootTableKey = new StringBuffer("SystemEventQueueUtilties.rootTableKey");
-
- private static Map getRootTable() {
- return getRootTable(AppContext.getAppContext());
- }
-
- private static Map getRootTable(AppContext var0) {
- Map var1 = (Map)var0.get(rootTableKey);
- if (var1 == null) {
- synchronized(rootTableKey) {
- var1 = (Map)var0.get(rootTableKey);
- if (var1 == null) {
- var1 = Collections.synchronizedMap(new WeakHashMap(4));
- var0.put(rootTableKey, var1);
- }
- }
- }
-
- return var1;
- }
-
- static void queueComponentWorkRequest(Component var0) {
- queueComponentWorkRequest(var0, AppContext.getAppContext());
- }
-
- static void queueComponentWorkRequest(Component var0, AppContext var1) {
- ComponentWorkRequest var2 = (ComponentWorkRequest)getRootTable(var1).get(var0);
- boolean var3 = var2 == null;
- if (var3) {
- var2 = new ComponentWorkRequest(var0);
- }
-
- boolean var4 = false;
- synchronized(var2) {
- if (var3) {
- getRootTable(var1).put(var0, var2);
- }
-
- if (!var2.isPending) {
- var2.isPending = true;
- var4 = true;
- }
- }
-
- if (var4) {
- SunToolkit.getSystemEventQueueImplPP(var1).postEvent(new InvocationEvent(Toolkit.getDefaultToolkit(), var2));
- }
-
- }
-
- static void addRunnableCanvas(JRootPane var0) {
- synchronized(classLock) {
- if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get(var0) == null) {
- JLayeredPane var2 = var0.getLayeredPane();
- if (var2 != null) {
- RunnableCanvas var3 = new RunnableCanvas(var0);
- var2.add(var3);
- }
-
- }
- }
- }
-
- static void removeRunnableCanvas(JRootPane var0) {
- synchronized(classLock) {
- Object var2 = null;
-
- for(Object var3 = var0; var3 != null; var3 = ((Component)var3).getParent()) {
- if (var3 instanceof Window || var3 instanceof Applet) {
- var2 = var3;
- break;
- }
- }
-
- if (var2 != null) {
- getRootTable().remove(var2);
- }
-
- javax.swing.SystemEventQueueUtilities.RunnableCanvas.remove(var0);
- }
- }
-
- static Exception postRunnable(Runnable var0, Object var1) {
- EventQueue var2 = javax.swing.SystemEventQueueUtilities.SystemEventQueue.get();
- RunnableEvent var3 = new RunnableEvent(var0, var1);
- if (var2 != null) {
- var2.postEvent(var3);
- } else {
- postRunnableCanvasEvent(var3);
- }
-
- return var3.exception;
- }
-
- static void restartTimerQueueThread() {
- synchronized(classLock) {
- if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get() == null) {
- TimerQueueRestart var1 = new TimerQueueRestart((1)null);
- RunnableEvent var2 = new RunnableEvent(var1, (Object)null);
- javax.swing.SystemEventQueueUtilities.RunnableCanvas.postRunnableEventToAll(var2);
- }
-
- }
- }
-
- private static void processRunnableEvent(RunnableEvent var0) {
- Object var1 = var0.lock;
- if (var1 == null) {
- var0.doRun.run();
- } else {
- synchronized(var1) {
- try {
- var0.doRun.run();
- } catch (Exception var9) {
- var0.exception = var9;
- } finally {
- if (var0.lock != null) {
- var0.lock.notify();
- }
-
- }
- }
- }
-
- }
-
- private static void postRunnableCanvasEvent(RunnableEvent var0) {
- synchronized(classLock) {
- RunnableCanvas var2 = javax.swing.SystemEventQueueUtilities.RunnableCanvas.lookup(var0);
- if (var2 == null) {
- if (var0.doRun instanceof ComponentWorkRequest) {
- ComponentWorkRequest var3 = (ComponentWorkRequest)var0.doRun;
- synchronized(var3) {
- var3.isPending = false;
- }
- }
-
- if (var0.doRun instanceof Timer.DoPostEvent) {
- ((Timer.DoPostEvent)var0.doRun).getTimer().cancelEvent();
- }
-
- if (var0.lock != null) {
- var0.lock.notify();
- }
-
- } else {
- var2.addRunnableEvent(var0);
- var2.repaint();
- }
- }
- }
-
- private static ThreadGroup getThreadGroupSafely() {
- return (new Thread()).getThreadGroup();
- }
-
- // $FF: synthetic method
- static void access$100(RunnableEvent var0) {
- processRunnableEvent(var0);
- }
-
- // $FF: synthetic method
- static ThreadGroup access$300() {
- return getThreadGroupSafely();
- }
- }
-