Object oldValue = getValue();
if (oldValue == null && newValue != null ||
oldValue != null && !oldValue.equals(newValue)) {
queueEvent(new ValueChangeEvent(this, oldValue, newValue));
}
ValueBinding valueBinding = getValueBinding("value");
if (valueBinding != null) {
valueBinding.setValue(facesContext, newValue);