File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
Expand file tree Collapse file tree 2 files changed +18
-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,11 @@ public static <T> Observable<Change<T>> fromObservableValueChanges(final Observa
4849 });
4950 }
5051
52+ public static Observable <javafx .beans .Observable > fromInvalidations (javafx .beans .Observable fxObservable ) {
53+ return Observable .create (subscriber -> {
54+ final InvalidationListener listener = subscriber ::onNext ;
55+ fxObservable .addListener (listener );
56+ subscriber .add (JavaFxSubscriptions .unsubscribeInEventDispatchThread (() -> fxObservable .removeListener (listener )));
57+ });
58+ }
5159}
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 every time it is invalidated.
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