public void shutdown() { registeredListeners.entrySet().stream() .filter(e -> e.getKey() != null) .forEach(e -> e.getKey().removeListener(e.getValue())); }
private <T> void registerListener(ObservableValue<T> value, ChangeListener<Object> listener) { ChangeListener<Object> previous = registeredListeners.put(value, listener); if (previous != null) { value.removeListener(previous); } value.addListener(listener); }
@Override public void changed(ObservableValue<? extends IndexRange> observable, IndexRange oldValue, IndexRange newValue) { if (null == ref.get()) { observable.removeListener(this); } else { ref.get().requestLayout(); } } }
protected Subscription observeTargetObservable(O target) { target.addListener(weakMappedListener); return () -> target.removeListener(weakMappedListener); }
@Override public void dispose() { root.removeListener(rootInvalidationListener); nestedSelection.disconnect(); } }
@Override public final void dispose() { src.removeListener(weakSrcListener); disposeMapped(); }
@Override public void unsubscribe() { condition.removeListener(conditionListener); if(subscription != null) { subscription.unsubscribe(); subscription = null; } } }
@Override public void disconnect() { if(isConnected()) { observable.removeListener(observableInvalidationListener); observable = null; } }
@Override public void removeListener(InvalidationListener listener) { if (listener instanceof UIThreadAware) { getDelegate().removeListener(listener); } else { getDelegate().removeListener(new UIThreadAwareInvalidationListener(listener)); } } }
@Override public void changed(ObservableValue<? extends Boolean> cond, Boolean wasTrue, Boolean isTrue) { Property<T> tgt = this.target.get(); if(tgt == null) { condition.removeListener((ChangeListener<Boolean>) this); } else if(isTrue) { tgt.bind(source); } else { tgt.unbind(); } }
@Override protected Subscription subscribeToInputs() { ChangeListener<T> listener = (obs, old, val) -> { if(val != null) { emit(val); } }; observable.addListener(listener); return () -> observable.removeListener(listener); }
@Override public void disconnect() { if(isConnected()) { nested.disconnect(); observable.removeListener(observableInvalidationListener); observable = null; } }
@Override public void dispose() { source.forEach(elem -> elem.removeListener(weakElemListener)); source.removeListener(weakListListener); }
private void removeBackingItem(T item, ObservableValue<R> cellValue) { if (cellValue == null) { return; } removeValue(cellValue.getValue()); //remove listener from cell ChangeListener<R> listener = trackedCells.get(new CellIdentity<>(item)); cellValue.removeListener(listener); trackedCells.remove(new CellIdentity<>(item)); } private void removeValue(R value) {
private void sourceChanged( Change<? extends ObservableValue<? extends T>> ch) { while(ch.next()) { ch.getRemoved().forEach(elem -> elem.removeListener(weakElemListener)); ch.getAddedSubList().forEach(elem -> elem.addListener(weakElemListener)); invalidate(); } }
@Override public <T> Binding to(final ObservableValue<T> observableValue, final Converter<? super T, ? extends S> converter) { if (observableValue == null) { throw new IllegalArgumentException("observableValue must not be null"); } if (converter == null) { throw new IllegalArgumentException("converter must not be null"); } final ChangeListener<T> listener = (obs, oldVal, newVal) -> property.set(converter.convert(newVal)); observableValue.addListener(listener); property.set(converter.convert(observableValue.getValue())); return () -> observableValue.removeListener(listener); }
public static <T> Observable<Optional<T>> fromNullableObservableValue(final ObservableValue<T> fxObservable) { return Observable.create((ObservableEmitter<Optional<T>> emitter) -> { emitter.onNext(Optional.ofNullable(fxObservable.getValue())); final ChangeListener<T> listener = (observableValue, prev, current) -> emitter.onNext(Optional.ofNullable(current)); fxObservable.addListener(listener); emitter.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> fxObservable.removeListener(listener))); }); }
public static <T> Observable<Optional<T>> fromNullableObservableValue(final ObservableValue<T> fxObservable) { return Observable.create((ObservableEmitter<Optional<T>> emitter) -> { emitter.onNext(Optional.ofNullable(fxObservable.getValue())); final ChangeListener<T> listener = (observableValue, prev, current) -> emitter.onNext(Optional.ofNullable(current)); fxObservable.addListener(listener); emitter.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> fxObservable.removeListener(listener))); }); }
public static <T> Observable<Change<T>> fromObservableValueChanges(final ObservableValue<T> fxObservable) { return Observable.create((ObservableEmitter<Change<T>> emitter) -> { final ChangeListener<T> listener = (observableValue, prev, current) -> { if (current != null) emitter.onNext(new Change<>(prev,current)); }; fxObservable.addListener(listener); emitter.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> fxObservable.removeListener(listener))); }); }
public static <T> Observable<T> fromObservableValue(final ObservableValue<T> fxObservable) { return Observable.create((ObservableEmitter<T> emitter) -> { if (fxObservable.getValue() != null) emitter.onNext(fxObservable.getValue()); final ChangeListener<T> listener = (observableValue, prev, current) -> { if (current != null) emitter.onNext(current); }; fxObservable.addListener(listener); emitter.setDisposable(JavaFxSubscriptions.unsubscribeInEventDispatchThread(() -> fxObservable.removeListener(listener))); }); }