-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathWidgetTimer.java
More file actions
101 lines (90 loc) · 2.25 KB
/
WidgetTimer.java
File metadata and controls
101 lines (90 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package org.lcdproc.lcdjava.util;
import org.lcdproc.lcdjava.Widget;
/**
* A Runnable class to update a Widget on a specified time period.
* <p>Copyright (c) 2004-2005 Darren Greaves.
* @author Darren Greaves
* @version $Id: WidgetTimer.java,v 1.2 2005-03-03 14:13:16 boncey Exp $
*/
public class WidgetTimer implements Runnable
{
/**
* Version details.
*/
public static final String CVSID =
"$Id: WidgetTimer.java,v 1.2 2005-03-03 14:13:16 boncey Exp $";
/**
* The class that holds a Widget for updating.
*/
private WidgetUpdater _updater;
/**
* Flag that tracks if we are alive or not.
*/
private boolean _alive = true;
/**
* How long to display the widget for (in milliseconds).
*/
private int _timeout;
/**
* Public constructor.
* @param updater the WidgetUpdater that will update when displaying.
* @param timeout how long to display the widget for (in milliseconds).
*/
public WidgetTimer(WidgetUpdater updater, int timeout)
{
_updater = updater;
_timeout = timeout;
}
/**
* Switch to the specified priority for the specified time period.
*/
public void run()
{
while (_alive)
{
try
{
_updater.updateWidget(this);
Thread.sleep(_timeout);
}
catch (InterruptedException e)
{
// Do nothing
}
}
}
/**
* Return the wrapped Widget.
* @return the Widget.
*/
public Widget getWidget()
{
return _updater.getWidget();
}
/**
* Alter the timeout value and wake up the thread.
* @param timeout the new timeout value.
*/
public synchronized void setTimeout(int timeout)
{
_timeout = timeout;
notify();
}
/**
* Tell this thread to die gracefully.
*/
public synchronized void destroy()
{
_alive = false;
_timeout = 0;
notify();
}
/**
* Return a String representing this object.
* @return a String representing this object.
*/
public String toString()
{
return "Updater = " + _updater + "; Timeout = " + _timeout;
}
}