aboutsummaryrefslogtreecommitdiff
path: root/src/esieequest/engine/scheduler/JSScheduler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/esieequest/engine/scheduler/JSScheduler.java')
-rw-r--r--src/esieequest/engine/scheduler/JSScheduler.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/esieequest/engine/scheduler/JSScheduler.java b/src/esieequest/engine/scheduler/JSScheduler.java
new file mode 100644
index 0000000..8a31339
--- /dev/null
+++ b/src/esieequest/engine/scheduler/JSScheduler.java
@@ -0,0 +1,52 @@
1package esieequest.engine.scheduler;
2
3import com.google.gwt.user.client.Timer;
4
5/**
6 * The Javascript/GWT Timer adapter.
7 *
8 * @author Pacien TRAN-GIRARD
9 */
10public class JSScheduler implements Scheduler {
11
12 private Timer timer;
13
14 @Override
15 public void schedule(final Callback callback, final int delay) {
16 this.cancel();
17
18 this.timer = new Timer() {
19 @Override
20 public void run() {
21 callback.call();
22 }
23 };
24 this.timer.schedule(delay);
25 }
26
27 @Override
28 public void cancel() {
29 if (this.timer == null) {
30 return;
31 }
32 this.timer.cancel();
33 }
34
35 @Override
36 public void run() {
37 if (this.timer == null) {
38 return;
39 }
40 this.cancel();
41 this.timer.run();
42 }
43
44 @Override
45 public boolean isRunning() {
46 if (this.timer == null) {
47 return false;
48 }
49 return this.timer.isRunning();
50 }
51
52}