Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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  }