File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change 1515 */
1616package rx .javafx .sources ;
1717
18+ import javafx .beans .InvalidationListener ;
19+ import javafx .beans .property .Property ;
1820import javafx .beans .value .ChangeListener ;
1921import javafx .beans .value .ObservableValue ;
2022import rx .Observable ;
21- import rx .Subscriber ;
2223import rx .subscriptions .JavaFxSubscriptions ;
2324
2425public class ObservableValueSource {
@@ -48,4 +49,19 @@ public static <T> Observable<Change<T>> fromObservableValueChanges(final Observa
4849 });
4950 }
5051
52+ public static <T > Observable <ObservableValue <T >> fromInvalidations (final ObservableValue <T > fxObservable ) {
53+ return Observable .create (subscriber -> {
54+ final InvalidationListener listener = s -> subscriber .onNext (fxObservable );
55+ fxObservable .addListener (listener );
56+ subscriber .add (JavaFxSubscriptions .unsubscribeInEventDispatchThread (() -> fxObservable .removeListener (listener )));
57+ });
58+ }
59+
60+ public static <T > Observable <Property <T >> fromInvalidations (final Property <T > fxProperty ) {
61+ return Observable .create (subscriber -> {
62+ final InvalidationListener listener = s -> subscriber .onNext (fxProperty );
63+ fxProperty .addListener (listener );
64+ subscriber .add (JavaFxSubscriptions .unsubscribeInEventDispatchThread (() -> fxProperty .removeListener (listener )));
65+ });
66+ }
5167}
Original file line number Diff line number Diff line change @@ -120,6 +120,15 @@ public static <T> Observable<Change<T>> fromObservableValueChanges(final Observa
120120 return changesOf (fxObservable );
121121 }
122122
123+ /**
124+ * Emits a JavaFX Observable
125+ * @param fxObservable
126+ * @return
127+ */
128+ public static Observable <javafx .beans .Observable > invalidationsOf (final javafx .beans .Observable fxObservable ) {
129+ return ObservableValueSource .fromInvalidations (fxObservable );
130+ }
131+
123132 /**
124133 * Creates an observable corresponding to javafx Scene events.
125134 *
You can’t perform that action at this time.
0 commit comments