Source code: com/port80/eclipse/util/Blinker.java
1 /*
2 * Created on Apr 21, 2003
3 */
4 package com.port80.eclipse.util;
5
6 import org.eclipse.swt.widgets.Display;
7
8 /**
9 * General blinking worker that call given Runnable on the given on and off time interval.
10 *
11 * @author chrisl
12 */
13 public class Blinker implements Runnable {
14
15 private Display fDisplay;
16 private IBlinkHandler fBlinker;
17 private int fOnTime;
18 private int fOffTime;
19 private boolean isOff;
20
21 public Blinker(Display display, int init, int on, int off, IBlinkHandler a) {
22 fDisplay=display;
23 fOnTime = on;
24 fOffTime = off;
25 fBlinker = a;
26 fDisplay.timerExec(init, this);
27 }
28
29 public void run() {
30 if (isOff) {
31 isOff=false;
32 if (!fBlinker.on(this))
33 return;
34 fDisplay.timerExec(fOnTime, this);
35 } else {
36 isOff=true;
37 if(!fBlinker.off(this))
38 return;
39 fDisplay.timerExec(fOffTime, this);
40 }
41 }
42
43 public void setOnTime(int t) {
44 fOnTime=t;
45 }
46
47 public void setOffTime(int t) {
48 fOffTime=t;
49 }
50
51 public synchronized void setOff(boolean b) {
52 isOff=b;
53 }
54
55 public synchronized boolean isOff() {
56 return isOff;
57 }
58 }