home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / awt / EventQueue.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  2.4 KB  |  116 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.InputEvent;
  4. import java.awt.event.KeyEvent;
  5. import java.awt.event.MouseEvent;
  6. import java.awt.event.PaintEvent;
  7. import java.util.EventObject;
  8.  
  9. public class EventQueue {
  10.    private static int threadInitNumber;
  11.    private EventQueueItem queue = null;
  12.  
  13.    private static synchronized int nextThreadNum() {
  14.       return threadInitNumber++;
  15.    }
  16.  
  17.    public EventQueue() {
  18.       String var1 = "AWT-EventQueue-" + nextThreadNum();
  19.       (new EventDispatchThread(var1, this)).start();
  20.    }
  21.  
  22.    public synchronized void postEvent(AWTEvent var1) {
  23.       EventQueueItem var2 = new EventQueueItem(var1);
  24.       if (this.queue == null) {
  25.          this.queue = var2;
  26.          this.notifyAll();
  27.       } else {
  28.          EventQueueItem var3 = this.queue;
  29.  
  30.          while(true) {
  31.             if (var3.id == var2.id) {
  32.                switch (var3.id) {
  33.                   case 503:
  34.                   case 506:
  35.                      MouseEvent var4 = (MouseEvent)var3.event;
  36.                      if (((EventObject)var4).getSource() == ((MouseEvent)var1).getSource() && ((InputEvent)var4).getModifiers() == ((MouseEvent)var1).getModifiers()) {
  37.                         var3.event = var2.event;
  38.                         return;
  39.                      }
  40.                      break;
  41.                   case 800:
  42.                   case 801:
  43.                      PaintEvent var5 = (PaintEvent)var3.event;
  44.                      if (((EventObject)var5).getSource() == ((EventObject)var1).getSource()) {
  45.                         Rectangle var6 = var5.getUpdateRect();
  46.                         Rectangle var7 = ((PaintEvent)var1).getUpdateRect();
  47.                         if (!var6.equals(var7)) {
  48.                            var5.setUpdateRect(var6.union(var7));
  49.                         }
  50.  
  51.                         return;
  52.                      }
  53.                }
  54.             }
  55.  
  56.             if (var3.next == null) {
  57.                var3.next = var2;
  58.                return;
  59.             }
  60.  
  61.             var3 = var3.next;
  62.          }
  63.       }
  64.    }
  65.  
  66.    public synchronized AWTEvent getNextEvent() throws InterruptedException {
  67.       while(this.queue == null) {
  68.          this.wait();
  69.       }
  70.  
  71.       EventQueueItem var1 = this.queue;
  72.       this.queue = this.queue.next;
  73.       return var1.event;
  74.    }
  75.  
  76.    public synchronized AWTEvent peekEvent() {
  77.       return this.queue != null ? this.queue.event : null;
  78.    }
  79.  
  80.    public synchronized AWTEvent peekEvent(int var1) {
  81.       for(EventQueueItem var2 = this.queue; var2 != null; var2 = var2.next) {
  82.          if (var2.id == var1) {
  83.             return var2.event;
  84.          }
  85.       }
  86.  
  87.       return null;
  88.    }
  89.  
  90.    synchronized void changeKeyEventFocus(Object var1) {
  91.       for(EventQueueItem var2 = this.queue; var2 != null; var2 = var2.next) {
  92.          if (var2.event instanceof KeyEvent) {
  93.             var2.event.setSource(var1);
  94.          }
  95.       }
  96.  
  97.    }
  98.  
  99.    synchronized void removeSourceEvents(Object var1) {
  100.       EventQueueItem var2 = this.queue;
  101.  
  102.       for(EventQueueItem var3 = null; var2 != null; var2 = var2.next) {
  103.          if (var2.event.getSource().equals(var1)) {
  104.             if (var3 == null) {
  105.                this.queue = var2.next;
  106.             } else {
  107.                var3.next = var2.next;
  108.             }
  109.          }
  110.  
  111.          var3 = var2;
  112.       }
  113.  
  114.    }
  115. }
  116.