29
29
import org .junit .Test ;
30
30
import org .mockito .InOrder ;
31
31
32
+ import rx .Scheduler ;
32
33
import rx .Subscription ;
33
34
import rx .subscriptions .Subscriptions ;
34
35
import rx .util .functions .Action0 ;
35
- import rx .util .functions .Func0 ;
36
+ import rx .util .functions .Func2 ;
36
37
37
38
/**
38
39
* Executes work on the Swing UI thread.
39
40
* This scheduler should only be used with actions that execute quickly.
40
41
*/
41
- public final class SwingScheduler extends AbstractScheduler {
42
+ public final class SwingScheduler extends Scheduler {
42
43
private static final SwingScheduler INSTANCE = new SwingScheduler ();
43
44
44
45
public static SwingScheduler getInstance () {
@@ -49,12 +50,12 @@ private SwingScheduler() {
49
50
}
50
51
51
52
@ Override
52
- public Subscription schedule (final Func0 < Subscription > action ) {
53
+ public < T > Subscription schedule (final T state , final Func2 < Scheduler , T , Subscription > action ) {
53
54
final AtomicReference <Subscription > sub = new AtomicReference <Subscription >();
54
55
EventQueue .invokeLater (new Runnable () {
55
56
@ Override
56
57
public void run () {
57
- sub .set (action .call ());
58
+ sub .set (action .call (SwingScheduler . this , state ));
58
59
}
59
60
});
60
61
return Subscriptions .create (new Action0 () {
@@ -69,7 +70,7 @@ public void call() {
69
70
}
70
71
71
72
@ 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 ) {
73
74
final AtomicReference <Subscription > sub = new AtomicReference <Subscription >();
74
75
long delay = unit .toMillis (dueTime );
75
76
@@ -90,7 +91,7 @@ public void actionPerformed(@SuppressWarnings("unused") ActionEvent e) {
90
91
if (timer != null ) {
91
92
timer .stop ();
92
93
}
93
- sub .set (action .call ());
94
+ sub .set (action .call (SwingScheduler . this , state ));
94
95
}
95
96
}
96
97
@@ -169,5 +170,4 @@ public void run() {
169
170
}
170
171
171
172
}
172
-
173
173
}
0 commit comments