@Override protected Object doGetValue() { return this.sourceObject.getValue(); }
@SuppressWarnings("unchecked") @Override public Consumer adapt(final ContextBoundValue sourceObject, Class<Consumer> targetType, ValueAccess... valueAccess) { return e -> sourceObject.publish(e); } }
@SuppressWarnings("unchecked") @Override public Property adapt(final ContextBoundValue sourceObject, Class<Property> targetType, ValueAccess... valueAccess) { final SimpleObjectProperty<Object> rv = new SimpleObjectProperty<>(sourceObject.getValue()); final InvalidationListener l = new InvalidationListener() { @Override public void invalidated(Observable observable) { sourceObject.publish(rv.get()); } }; rv.addListener(l); sourceObject.subscribeOnValueChange(new Callback() { @Override public void call(Object value) { if (rv.get() == null && value == null) return; if (rv.get() != null && rv.get().equals(value)) return; rv.set(value); } }); sourceObject.subscribeOnDispose(new Callback() { @Override public void call(Object value) { rv.removeListener(l); } }); return rv; }
@SuppressWarnings("unchecked") @Override protected void firstListenerAdded(){ this.currentSubscription = this.sourceObject.subscribeOnValueChange(new ContextBoundValueChanged()); } @Override
sourceObject.subscribeOnDispose(new Callback<Void>() {
@SuppressWarnings("unchecked") @Override protected void doSetValue(Object value) { this.sourceObject.publish(value); }
@Override public void invalidated(Observable observable) { sourceObject.publish(rv.get()); } };