home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / awt / EventQueue.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  2.6 KB  |  130 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.       this.postEvent(var1, false);
  24.    }
  25.  
  26.    synchronized void postEventAtHead(AWTEvent var1) {
  27.       this.postEvent(var1, true);
  28.    }
  29.  
  30.    private synchronized void postEvent(AWTEvent var1, boolean var2) {
  31.       EventQueueItem var3 = new EventQueueItem(var1);
  32.       if (this.queue == null) {
  33.          this.queue = var3;
  34.          this.notifyAll();
  35.       } else {
  36.          EventQueueItem var4 = this.queue;
  37.  
  38.          while(true) {
  39.             if (var4.id == var3.id) {
  40.                switch (var4.id) {
  41.                   case 503:
  42.                   case 506:
  43.                      MouseEvent var5 = (MouseEvent)var4.event;
  44.                      if (((EventObject)var5).getSource() == ((MouseEvent)var1).getSource() && ((InputEvent)var5).getModifiers() == ((MouseEvent)var1).getModifiers()) {
  45.                         var4.event = var3.event;
  46.                         return;
  47.                      }
  48.                      break;
  49.                   case 800:
  50.                   case 801:
  51.                      PaintEvent var6 = (PaintEvent)var4.event;
  52.                      if (((EventObject)var6).getSource() == ((EventObject)var1).getSource()) {
  53.                         Rectangle var7 = var6.getUpdateRect();
  54.                         Rectangle var8 = ((PaintEvent)var1).getUpdateRect();
  55.                         if (!var7.equals(var8)) {
  56.                            var6.setUpdateRect(var7.union(var8));
  57.                         }
  58.  
  59.                         return;
  60.                      }
  61.                }
  62.             }
  63.  
  64.             if (var4.next == null) {
  65.                if (var2) {
  66.                   var3.next = this.queue;
  67.                   this.queue = var3;
  68.                   return;
  69.                }
  70.  
  71.                var4.next = var3;
  72.                return;
  73.             }
  74.  
  75.             var4 = var4.next;
  76.          }
  77.       }
  78.    }
  79.  
  80.    public synchronized AWTEvent getNextEvent() throws InterruptedException {
  81.       while(this.queue == null) {
  82.          this.wait();
  83.       }
  84.  
  85.       EventQueueItem var1 = this.queue;
  86.       this.queue = this.queue.next;
  87.       return var1.event;
  88.    }
  89.  
  90.    public synchronized AWTEvent peekEvent() {
  91.       return this.queue != null ? this.queue.event : null;
  92.    }
  93.  
  94.    public synchronized AWTEvent peekEvent(int var1) {
  95.       for(EventQueueItem var2 = this.queue; var2 != null; var2 = var2.next) {
  96.          if (var2.id == var1) {
  97.             return var2.event;
  98.          }
  99.       }
  100.  
  101.       return null;
  102.    }
  103.  
  104.    synchronized void changeKeyEventFocus(Object var1) {
  105.       for(EventQueueItem var2 = this.queue; var2 != null; var2 = var2.next) {
  106.          if (var2.event instanceof KeyEvent) {
  107.             var2.event.setSource(var1);
  108.          }
  109.       }
  110.  
  111.    }
  112.  
  113.    synchronized void removeSourceEvents(Object var1) {
  114.       EventQueueItem var2 = this.queue;
  115.  
  116.       for(EventQueueItem var3 = null; var2 != null; var2 = var2.next) {
  117.          if (var2.event.getSource().equals(var1)) {
  118.             if (var3 == null) {
  119.                this.queue = var2.next;
  120.             } else {
  121.                var3.next = var2.next;
  122.             }
  123.          }
  124.  
  125.          var3 = var2;
  126.       }
  127.  
  128.    }
  129. }
  130.