private static Supplier<Map<Class<? extends GwtEvent>, HandlerRegistration>> mergeNativeChangeEventListener( final Object component, final Optional<Supplier<Object>> uiGetter, final Consumer<Object> modelUpdater, Supplier<Map<Class<? extends GwtEvent>, HandlerRegistration>> registrar) { registrar = mergeToLeft(registrar, () -> { logger.debug("Adding native change event listener to {}", component); final JavaScriptObject listener = wrap(() -> uiGetter.ifPresent(getter -> modelUpdater.accept(getter.get()))); addChangeEventListener(component, listener); final HandlerRegistration hr = () -> removeChangeEventListener(component, listener); return Collections.singletonMap(ValueChangeEvent.class, hr); }); return registrar; }
private static Supplier<Map<Class<? extends GwtEvent>, HandlerRegistration>> mergeNativeChangeEventListener( final Object component, final Optional<Supplier<Object>> uiGetter, final Consumer<Object> modelUpdater, Supplier<Map<Class<? extends GwtEvent>, HandlerRegistration>> registrar) { registrar = mergeToLeft(registrar, () -> { logger.debug("Adding native change event listener to {}", component); final JavaScriptObject listener = wrap(() -> uiGetter.ifPresent(getter -> modelUpdater.accept(getter.get()))); addChangeEventListener(component, listener); final HandlerRegistration hr = () -> removeChangeEventListener(component, listener); return Collections.singletonMap(ValueChangeEvent.class, hr); }); return registrar; }