home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.EventQueue;
- import java.awt.Window;
- import java.util.Map;
- import java.util.WeakHashMap;
- import sun.awt.AppContext;
-
- class SystemEventQueueUtilities {
- private static final Object classLock = new Object();
- private static final Object rootTableKey = new 1();
-
- private static Map getRootTable() {
- Object var0 = (Map)AppContext.getAppContext().get(rootTableKey);
- if (var0 == null) {
- Object var1 = rootTableKey;
- synchronized(var1) {
- var0 = (Map)AppContext.getAppContext().get(rootTableKey);
- if (var0 == null) {
- var0 = new WeakHashMap(4);
- AppContext.getAppContext().put(rootTableKey, var0);
- }
- }
- }
-
- return (Map)var0;
- }
-
- static void queueComponentWorkRequest(Component var0) {
- ComponentWorkRequest var1 = (ComponentWorkRequest)getRootTable().get(var0);
- boolean var2 = var1 == null;
- if (var2) {
- var1 = new ComponentWorkRequest(var0);
- }
-
- synchronized(var1) {
- if (var2) {
- getRootTable().put(var0, var1);
- }
-
- if (!var1.isPending) {
- SwingUtilities.invokeLater(var1);
- var1.isPending = true;
- }
-
- }
- }
-
- static void addRunnableCanvas(JRootPane var0) {
- Object var1 = classLock;
- synchronized(var1) {
- if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get(var0) == null) {
- JLayeredPane var2 = var0.getLayeredPane();
- if (var2 != null) {
- RunnableCanvas var3 = new RunnableCanvas(var0);
- ((Container)var2).add(var3);
- }
-
- }
- }
- }
-
- static void removeRunnableCanvas(JRootPane var0) {
- Object var1 = classLock;
- synchronized(var1) {
- 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() {
- Object var0 = classLock;
- synchronized(var0) {
- 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 var10) {
- var0.exception = var10;
- } finally {
- if (var0.lock != null) {
- var0.lock.notify();
- }
-
- }
- }
- }
-
- }
-
- private static void postRunnableCanvasEvent(RunnableEvent var0) {
- Object var1 = classLock;
- synchronized(var1) {
- 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().eventQueued = false;
- }
-
- if (var0.lock != null) {
- var0.lock.notify();
- }
-
- } else {
- var2.addRunnableEvent(var0);
- ((Component)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();
- }
-
- static {
- if (!SwingUtilities.is1dot2) {
- System.err.println("warning: running 1.2 version of SystemEventQueueUtilities");
- }
-
- }
- }
-