@Override public ValidationContext createValidationContext(ValidationScope scope) { return new ValidationContext(getMember().getMemberPath(), getMember().getType(), getModelValue(), getParentObject(), scope); }
@Override @SuppressWarnings("unchecked") public FxTableBinder<S> getBinder() { return (FxTableBinder<S>) super.getBinder(); }
@Override public Object getModelValue() { return getModelValue(getParentObject()); }
@Override public List<ValidationResult> validate() { Object parentObject = getParentObject(); if (validators != null && parentObject != null && isValidationRequired()) { List<ValidationResult> results = ValidationUtilities.getInstance().validateObject( validators, binder.getValidationScope(), member.getMemberPath(), parentObject, getModelValue(), getMember().getType()); fireValidated(results); binder.fireValidated(this, results); return results; } return Collections.emptyList(); }
fireToView(parent, value); binder.fireToView(this, parent, value); updateView(value); " from " + member + " to " + viewComponentToString(); if (veto.getMessage() != null) { msg += ": " + veto.getMessage(); setModelValue(parent, value, false);
LOGGER.fine(() -> member + " <- " + viewComponentToString() + " = " + StringHelper.objectToLoggableString(value)); fireToModel(parent, value); binder.fireToModel(this, parent, value); LOGGER.fine(() -> { String msg = "veto for value " + StringHelper.objectToLoggableString(value) + " from " + viewComponentToString() + " to " + member; if (veto.getMessage() != null) { updateView(parent, getModelValue(parent), false);
super.fireToView(parent, modelValue);
@Override @SuppressWarnings("unchecked") public T getModelValue() { return (T) super.getModelValue(); }
@Override public Object getParentObject () { Object object = getBoundRootObject(); if (parents != null) { for (BindingMember parentMember: getParents()) { if (object == null) { break; // some binding reference is null } try { object = parentMember.getObject(object); } catch (RuntimeException ex) { throw new BindingException("can't walk down to " + parentMember, ex); } } } return object; }
@Override public void fireToView(Object parent, Object modelValue) throws BindingVetoException { BindingEvent evt = null; if (toViewListeners != null) { for (ToViewListener l: toViewListeners) { if (evt == null) { evt = createBindingEvent(true, parent, modelValue); } l.toView(evt); } } }
@Override protected void determineValidators() { super.determineValidators(); List<Validator> validators = getValidators(); if (validators != null) { // determine mandatory/changeable fixed and dynamic validators for (Validator validator: validators) { if (validator instanceof MandatoryBindingEvaluator) { if (mandatoryValidators == null) { mandatoryValidators = new ArrayList<>(); } mandatoryValidators.add(validator); } if (validator instanceof ChangeableBindingEvaluator) { if (changeableValidators == null) { changeableValidators = new ArrayList<>(); } changeableValidators.add(validator); } } } }
@Override public void fireValidated(List<ValidationResult> results) { if (validationListeners != null) { ValidationEvent evt = null; for (ValidationListener l: validationListeners) { if (evt == null) { evt = createValidationEvent(results); } l.validated(evt); } } }
@Override public void fireToView(Object parent, Object modelValue) throws BindingVetoException { super.fireToView(parent, modelValue);
@Override public void fireToModel(Object parent, Object viewValue) throws BindingVetoException { BindingEvent evt = null; if (toModelListeners != null) { for (ToModelListener l: toModelListeners) { if (evt == null) { evt = createBindingEvent(false, parent, viewValue); } l.toModel(evt); } } }
@Override protected void determineValidators() { super.determineValidators(); List<Validator> validators = getValidators(); if (validators != null) { // determine fixed mandatory and fixed changeable validators for (Validator validator : validators) { if (validator instanceof MandatoryBindingEvaluator && !((MandatoryBindingEvaluator) validator).isMandatoryDynamic()) { if (fixedMandatoryValidators == null) { fixedMandatoryValidators = new ArrayList<>(); } fixedMandatoryValidators.add(validator); } if (validator instanceof ChangeableBindingEvaluator && !((ChangeableBindingEvaluator) validator).isChangeableDynamic()) { if (fixedChangeableValidators == null) { fixedChangeableValidators = new ArrayList<>(); } fixedChangeableValidators.add(validator); } } // the dynamic validators are managed by the binder } }
@Override public FxComponentBinder getBinder() { return (FxComponentBinder) super.getBinder(); }