1 package rero.util; 2 3 import javax.swing.SwingUtilities ; 4 5 public class TimedEvent 6 { 7 protected TimerListener listener; 8 protected Runnable executeMe; 9 protected long lastTouched; 10 protected int repeats; 11 12 protected long waitTime; 13 14 public TimedEvent(TimerListener _listener) 15 { 16 this(_listener, 60000, -1); 17 } 18 19 public TimedEvent(TimerListener _listener, long _waitTime) 20 { 21 this(_listener, _waitTime, -1); 22 } 23 24 public TimedEvent(TimerListener _listener, long _waitTime, int _repeats) 25 { 26 listener = _listener; 27 lastTouched = System.currentTimeMillis(); 28 repeats = _repeats; 29 waitTime = _waitTime; 30 31 executeMe = new Runnable () { 32 public void run() 33 { 34 listener.timerExecute(); 35 } 36 }; 37 } 38 39 public TimerListener getListener() 40 { 41 return listener; 42 } 43 44 public void finish() 45 { 46 repeats = 0; 47 } 48 49 public boolean isValid() 50 { 51 return (repeats != 0); 52 } 53 54 public boolean isReady() 55 { 56 return (System.currentTimeMillis() - lastTouched) >= waitTime; 57 } 58 59 public void timerExecute() 60 { 61 SwingUtilities.invokeLater(executeMe); 62 63 lastTouched = System.currentTimeMillis(); 64 65 if (repeats > 0) 66 { 67 repeats--; 68 } 69 } 70 } 71 | Popular Tags |