home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / SystemEventQueueUtilities.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  4.0 KB  |  146 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.EventQueue;
  6. import java.util.Hashtable;
  7.  
  8. class SystemEventQueueUtilities {
  9.    private static Hashtable rootTable = new Hashtable(4);
  10.  
  11.    static {
  12.       if (SwingUtilities.is1dot2) {
  13.          System.err.println("warning: running 1.1 version of SystemEventQueueUtilities");
  14.       }
  15.  
  16.    }
  17.  
  18.    // $FF: synthetic method
  19.    static void access$0(RunnableEvent var0) {
  20.       processRunnableEvent(var0);
  21.    }
  22.  
  23.    // $FF: synthetic method
  24.    static ThreadGroup access$1() {
  25.       return getThreadGroupSafely();
  26.    }
  27.  
  28.    static synchronized void addRunnableCanvas(JRootPane var0) {
  29.       if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get(var0) == null) {
  30.          JLayeredPane var1 = var0.getLayeredPane();
  31.          if (var1 != null) {
  32.             RunnableCanvas var2 = new RunnableCanvas(var0);
  33.             ((Container)var1).add(var2);
  34.          }
  35.  
  36.       }
  37.    }
  38.  
  39.    private static ThreadGroup getThreadGroupSafely() {
  40.       return (new Thread()).getThreadGroup();
  41.    }
  42.  
  43.    static Exception postRunnable(Runnable var0, Object var1) {
  44.       EventQueue var2 = javax.swing.SystemEventQueueUtilities.SystemEventQueue.get();
  45.       RunnableEvent var3 = new RunnableEvent(var0, var1);
  46.       if (var2 != null) {
  47.          var2.postEvent(var3);
  48.       } else {
  49.          postRunnableCanvasEvent(var3);
  50.       }
  51.  
  52.       return var3.exception;
  53.    }
  54.  
  55.    private static synchronized void postRunnableCanvasEvent(RunnableEvent var0) {
  56.       RunnableCanvas var1 = javax.swing.SystemEventQueueUtilities.RunnableCanvas.lookup(var0);
  57.       if (var1 == null) {
  58.          if (var0.doRun instanceof ComponentWorkRequest) {
  59.             ComponentWorkRequest var2 = (ComponentWorkRequest)var0.doRun;
  60.             synchronized(var2){}
  61.  
  62.             try {
  63.                var2.isPending = false;
  64.             } catch (Throwable var5) {
  65.                throw var5;
  66.             }
  67.          }
  68.  
  69.          if (var0.doRun instanceof Timer.DoPostEvent) {
  70.             ((Timer.DoPostEvent)var0.doRun).getTimer().eventQueued = false;
  71.          }
  72.  
  73.          if (var0.lock != null) {
  74.             var0.lock.notify();
  75.          }
  76.  
  77.       } else {
  78.          var1.addRunnableEvent(var0);
  79.          ((Component)var1).repaint();
  80.       }
  81.    }
  82.  
  83.    private static void processRunnableEvent(RunnableEvent var0) {
  84.       Object var1 = var0.lock;
  85.       if (var1 == null) {
  86.          var0.doRun.run();
  87.       } else {
  88.          synchronized(var1){}
  89.  
  90.          try {
  91.             try {
  92.                var0.doRun.run();
  93.             } catch (Exception var13) {
  94.                var0.exception = var13;
  95.             } finally {
  96.                if (var0.lock != null) {
  97.                   var0.lock.notify();
  98.                }
  99.  
  100.             }
  101.          } catch (Throwable var15) {
  102.             throw var15;
  103.          }
  104.       }
  105.  
  106.    }
  107.  
  108.    static void queueComponentWorkRequest(Component var0) {
  109.       ComponentWorkRequest var1 = (ComponentWorkRequest)rootTable.get(var0);
  110.       boolean var2 = var1 == null;
  111.       if (var2) {
  112.          var1 = new ComponentWorkRequest(var0);
  113.       }
  114.  
  115.       synchronized(var1){}
  116.  
  117.       try {
  118.          if (var2) {
  119.             rootTable.put(var0, var1);
  120.          }
  121.  
  122.          if (!var1.isPending) {
  123.             SwingUtilities.invokeLater(var1);
  124.             var1.isPending = true;
  125.          }
  126.       } catch (Throwable var5) {
  127.          throw var5;
  128.       }
  129.  
  130.    }
  131.  
  132.    static synchronized void removeRunnableCanvas(JRootPane var0) {
  133.       rootTable.remove(SwingUtilities.getRoot(var0));
  134.       javax.swing.SystemEventQueueUtilities.RunnableCanvas.remove(var0);
  135.    }
  136.  
  137.    static synchronized void restartTimerQueueThread() {
  138.       if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get() == null) {
  139.          TimerQueueRestart var0 = new TimerQueueRestart();
  140.          RunnableEvent var1 = new RunnableEvent(var0, (Object)null);
  141.          javax.swing.SystemEventQueueUtilities.RunnableCanvas.postRunnableEventToAll(var1);
  142.       }
  143.  
  144.    }
  145. }
  146.