Skip to content

Commit f88dc4c

Browse files
author
jmhofer
committed
adapted SwingScheduler to new Scheduler interface
1 parent f59bf84 commit f88dc4c

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

rxjava-core/src/main/java/rx/concurrency/SwingScheduler.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,17 @@
2929
import org.junit.Test;
3030
import org.mockito.InOrder;
3131

32+
import rx.Scheduler;
3233
import rx.Subscription;
3334
import rx.subscriptions.Subscriptions;
3435
import rx.util.functions.Action0;
35-
import rx.util.functions.Func0;
36+
import rx.util.functions.Func2;
3637

3738
/**
3839
* Executes work on the Swing UI thread.
3940
* This scheduler should only be used with actions that execute quickly.
4041
*/
41-
public final class SwingScheduler extends AbstractScheduler {
42+
public final class SwingScheduler extends Scheduler {
4243
private static final SwingScheduler INSTANCE = new SwingScheduler();
4344

4445
public static SwingScheduler getInstance() {
@@ -49,12 +50,12 @@ private SwingScheduler() {
4950
}
5051

5152
@Override
52-
public Subscription schedule(final Func0<Subscription> action) {
53+
public <T> Subscription schedule(final T state, final Func2<Scheduler, T, Subscription> action) {
5354
final AtomicReference<Subscription> sub = new AtomicReference<Subscription>();
5455
EventQueue.invokeLater(new Runnable() {
5556
@Override
5657
public void run() {
57-
sub.set(action.call());
58+
sub.set(action.call(SwingScheduler.this, state));
5859
}
5960
});
6061
return Subscriptions.create(new Action0() {
@@ -69,7 +70,7 @@ public void call() {
6970
}
7071

7172
@Override
72-
public Subscription schedule(final Func0<Subscription> action, long dueTime, TimeUnit unit) {
73+
public <T> Subscription schedule(final T state, final Func2<Scheduler, T, Subscription> action, long dueTime, TimeUnit unit) {
7374
final AtomicReference<Subscription> sub = new AtomicReference<Subscription>();
7475
long delay = unit.toMillis(dueTime);
7576

@@ -90,7 +91,7 @@ public void actionPerformed(@SuppressWarnings("unused") ActionEvent e) {
9091
if (timer != null) {
9192
timer.stop();
9293
}
93-
sub.set(action.call());
94+
sub.set(action.call(SwingScheduler.this, state));
9495
}
9596
}
9697

@@ -169,5 +170,4 @@ public void run() {
169170
}
170171

171172
}
172-
173173
}

0 commit comments

Comments
 (0)