static > A bindComboBoxToVar_withUserChangeListener(IVarWithNotify var, A cb, Runnable userChangeListener) { new BoolVar inVarChange; if (var != null) { bindListenerToComponent(cb, var, -> { temp tempSetBoolVar(inVarChange, true); selectItem(cb, var!); }); onChange(cb, -> { var.set(getSelected(cb)); if (!inVarChange!) pcallF(userChangeListener); }); } ret cb; }