static A bindListenerToComponent(A component, IHasChangeListeners source, Runnable listener) { if (source != null && listener != null) bindToComponent(component, r { source.onChangeAndNow(listener); }, r { source.removeChangeListener(listener) }); ret component; }