@Override public void valueChanged(@Nullable Object prevValue, @Nullable Object value) { valueChangeListener.accept(new ValueChangeEvent(paramWrapper, prevValue, value)); }
protected void componentValueChanged(P prevComponentValue, P newComponentValue, boolean isUserOriginated) { if (isUserOriginated) { V value; try { value = convertToModel(newComponentValue); P presentationValue = convertToPresentation(value); // always update presentation value after change // for instance: "1000" entered by user could be "1 000" in case of integer formatting setValueToPresentation(presentationValue); } catch (ConversionException ce) { LoggerFactory.getLogger(getClass()).trace("Unable to convert presentation value to model", ce); setValidationError(ce.getLocalizedMessage()); // todo show notification here ? return; } V oldValue = internalValue; internalValue = value; if (!fieldValueEquals(value, oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, isUserOriginated); publish(ValueChangeEvent.class, event); } } }
@Override public void setValue(List<V> newValue) { super.setValue(newValue); delegate.setValue(newValue); Object oldValue = internalValue; if (!Objects.equals(oldValue, newValue)) { internalValue = newValue; ValueChangeEvent event = new ValueChangeEvent<>(this, oldValue, newValue); publish(ValueChangeEvent.class, event); } }
protected void componentValueChanged(boolean isUserOriginated) { if (isUserOriginated) { V value; try { value = constructModelValue(); if (!checkRange(value)) { return; } LocalDateTime presentationValue = convertToPresentation(value); setValueToPresentation(presentationValue); } catch (ConversionException ce) { LoggerFactory.getLogger(WebDateField.class) .trace("Unable to convert presentation value to model", ce); setValidationError(ce.getLocalizedMessage()); return; } V oldValue = internalValue; internalValue = value; if (!fieldValueEquals(value, oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, isUserOriginated); publish(ValueChangeEvent.class, event); } } }
@Override public void setValue(V value) { super.setValue(value); V oldValue = internalValue; internalValue = value; if (isMultiSelect()) { //noinspection unchecked if (isCollectionValuesChanged((Collection<I>) value, (Collection<I>) oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, false); publish(ValueChangeEvent.class, event); } } else if (!fieldValueEquals(value, oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, false); publish(ValueChangeEvent.class, event); } }
@Override public void setValueFromUser(V value) { setValueToPresentation(convertToPresentation(value)); V oldValue = internalValue; this.internalValue = value; if (!fieldValueEquals(value, oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, true); publish(ValueChangeEvent.class, event); } }
@Override public void setValue(V value) { setValueToPresentation(convertToPresentation(value)); V oldValue = internalValue; this.internalValue = value; if (!fieldValueEquals(value, oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, false); publish(ValueChangeEvent.class, event); } }
protected void fireValueChange(Collection<V> oldValue, Collection<V> value) { if (!equalCollections(oldValue, value)) { ValueChangeEvent<Collection<V>> event = new ValueChangeEvent<>(this, oldValue, value, false); publish(ValueChangeEvent.class, event); } }
protected void componentValueChanged(Object newComponentValue, boolean userOriginated) { V value = convertToModel(newComponentValue); V oldValue = internalValue; internalValue = value; if (!fieldValueEquals(value, oldValue)) { if (hasValidationError()) { setValidationError(null); } ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, userOriginated); publish(ValueChangeEvent.class, event); } }
@Override public void setValue(V value) { setValueToPresentation(convertToPresentation(value)); V oldValue = internalValue; this.internalValue = value; if (!fieldValueEquals(value, oldValue)) { ValueChangeEvent<V> event = new ValueChangeEvent<>(this, oldValue, value, false); publish(ValueChangeEvent.class, event); } }