KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > rero > util > TimedEvent


1 package rero.util;
2
3 import javax.swing.SwingUtilities JavaDoc;
4
5 public class TimedEvent
6 {
7    protected TimerListener listener;
8    protected Runnable JavaDoc 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 JavaDoc() {
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