KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > swing > cursor > WaitCursorEventQueue


1 package net.sf.panoptes.swing.cursor;
2
3 import java.awt.AWTEvent JavaDoc;
4 import java.awt.EventQueue JavaDoc;
5 /**
6  * Suggested serving size:
7  * Toolkit.getDefaultToolkit().getSystemEventQueue().push(new WaitCursorEventQueue(70));
8  */

9 public class WaitCursorEventQueue extends EventQueue JavaDoc
10     implements DelayTimerCallback {
11   private final CursorManager cursorManager;
12   private final DelayTimer waitTimer;
13
14   public WaitCursorEventQueue(int delay) {
15     this.waitTimer = new DelayTimer(this, delay);
16     this.cursorManager = new CursorManager(waitTimer);
17   }
18   public void close() {
19     waitTimer.quit();
20     pop();
21   }
22   protected void dispatchEvent(AWTEvent JavaDoc event) {
23     cursorManager.push(event.getSource());
24     waitTimer.startTimer();
25     try {
26       super.dispatchEvent(event);
27     } finally {
28       waitTimer.stopTimer();
29       cursorManager.pop();
30     }
31   }
32   public AWTEvent JavaDoc getNextEvent() throws InterruptedException JavaDoc {
33     waitTimer.stopTimer(); //started by pop(), this catches modal dialogs
34
//closing that do work afterwards
35
return super.getNextEvent();
36   }
37   public void trigger() {
38     cursorManager.setCursor();
39   }
40 }
Popular Tags