1 package net.sf.panoptes.swing.cursor; 2 3 import java.awt.AWTEvent ; 4 import java.awt.EventQueue ; 5 9 public class WaitCursorEventQueue extends EventQueue 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 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 getNextEvent() throws InterruptedException { 33 waitTimer.stopTimer(); return super.getNextEvent(); 36 } 37 public void trigger() { 38 cursorManager.setCursor(); 39 } 40 } | Popular Tags |