@Override @SuppressWarnings("unchecked") public void addBinding(Binding binding) { if (binding instanceof FxTableBinding) { FxTableBinding<S,?> oldBinding = boundPaths.put(binding.getMember().getMemberPath(), (FxTableBinding<S,?>) binding); if (oldBinding != null) { throw new BindingException(binding + ": binding path '" + binding.getMember().getMemberPath() + "' already bound to column " + oldBinding.getConfiguration().getName()); } } }
@Override public void fireToModel(Binding binding, Object parent, Object viewValue) throws BindingVetoException { if (toViewListeners != null) { BindingEvent evt = null; for (ToModelListener l: toModelListeners) { if (evt == null) { evt = binding.createBindingEvent(false, parent, viewValue); } l.toModel(evt); } } }
@Override public void fireValidated(Binding binding, List<ValidationResult> results) { if (validationListeners != null) { ValidationEvent evt = null; for (ValidationListener l: validationListeners) { if (evt == null) { evt = binding.createValidationEvent(results); } l.validated(evt); } } }
for (Binding mandatoryBinding: dynamicMandatoryBindings) { boolean mandatory = false; for (Validator validator: mandatoryBinding.getValidators()) { if (validator instanceof MandatoryBindingEvaluator) { Object parentObject = mandatoryBinding.getParentObject(); if (parentObject != null) { // if parent path is valid, i.e. no null reference ValidationScope scope = ValidationScopeFactory.getInstance().getMandatoryScope(); ValidationContext validationContext = new ValidationContext( mandatoryBinding.getMember().getMemberPath(), mandatoryBinding.getMember().getType(), mandatoryBinding.getModelValue(), parentObject, scope); mandatoryBinding.setMandatory(mandatory); for (Binding changeableBinding: dynamicChangeableBindings) { boolean changeable = false; for (Validator validator: changeableBinding.getValidators()) { if (validator instanceof ChangeableBindingEvaluator) { Object parentObject = changeableBinding.getParentObject(); if (parentObject != null) { // if parent path is valid, i.e. no null reference ValidationScope scope = ValidationScopeFactory.getInstance().getChangeableScope(); ValidationContext validationContext = new ValidationContext( changeableBinding.getMember().getMemberPath(), changeableBinding.getMember().getType(), changeableBinding.getModelValue(), parentObject, scope);
@Override public void addBinding(Binding binding) { if (binding instanceof FxComponentBinding) { FxComponentBinding oldBinding = boundPaths.put(binding.getMember().getMemberPath(), (FxComponentBinding) binding); if (oldBinding != null) { throw new BindingException(binding + ": binding path '" + binding.getMember().getMemberPath() + "' already bound to " + oldBinding.getComponent().getComponentPath()); List<Validator> validators = binding.getValidators(); if (validators != null) { for (Validator validator: validators) {
/** * Notifies all ValueListeners (usually only one!) that the field is * going to be displayed and thus needs the data what to display. * * @param c the component * @param listeners the listener array */ public void doFireValueChanged(FormComponent c, Object[] listeners) { if (!c.isFireRunning()) { c.setFireRunning(true); if (listeners != null) { ValueEvent evt = null; for (int i = listeners.length - 2; i >= 0; i -= 2) { if (listeners[i] == ValueListener.class) { if (evt == null) { evt = new ValueEvent(c, ValueEvent.SET); } ((ValueListener) listeners[i + 1]).valueChanged(evt); } } } Binding binding = c.getBinding(); if (binding != null) { binding.setViewValue(binding.getModelValue()); } c.setFireRunning(false); } }
/** * Notifies all ValueListeners (usually only one!) that the field contents * should be moved to the actual data object. * * @param c the component * @param listeners the listener array */ public void doFireValueEntered(FormComponent c, Object[] listeners) { if (!c.isFireRunning()) { c.setFireRunning(true); Binding binding = c.getBinding(); if (binding != null) { binding.setModelValue(binding.getViewValue()); } if (listeners != null) { ValueEvent evt = null; for (int i = listeners.length - 2; i >= 0; i -= 2) { if (listeners[i] == ValueListener.class) { if (evt == null) { evt = new ValueEvent(c, ValueEvent.GET); } ((ValueListener) listeners[i + 1]).valueEntered(evt); } } } c.setFireRunning(false); // trigger possible value changed to container c.triggerValueChanged(); } }
for (Binding mandatoryBinding: dynamicMandatoryBindings) { boolean mandatory = false; for (Validator validator: mandatoryBinding.getValidators()) { if (validator instanceof MandatoryBindingEvaluator) { Object parentObject = mandatoryBinding.getParentObject(); if (parentObject != null) { // if parent path is valid, i.e. no null reference ValidationScope scope = ValidationScopeFactory.getInstance().getMandatoryScope(); ValidationContext validationContext = new ValidationContext( mandatoryBinding.getMember().getMemberPath(), mandatoryBinding.getMember().getType(), mandatoryBinding.getModelValue(), parentObject, scope); mandatoryBinding.setMandatory(mandatory); for (Binding changeableBinding: dynamicChangeableBindings) { boolean changeable = false; for (Validator validator: changeableBinding.getValidators()) { if (validator instanceof ChangeableBindingEvaluator) { Object parentObject = changeableBinding.getParentObject(); if (parentObject != null) { // if parent path is valid, i.e. no null reference ValidationScope scope = ValidationScopeFactory.getInstance().getChangeableScope(); ValidationContext validationContext = new ValidationContext( changeableBinding.getMember().getMemberPath(), changeableBinding.getMember().getType(), changeableBinding.getModelValue(), parentObject, scope);
@Override public void addBinding(Binding binding) { if (binding instanceof FormComponentBinding) { FormComponentBinding oldBinding = boundPaths.put(binding.getMember().getMemberPath(), (FormComponentBinding) binding); if (oldBinding != null) { throw new BindingException(binding + ": binding path '" + binding.getMember().getMemberPath() + "' already bound to " + oldBinding.getComponent().getComponentPath()); List<Validator> validators = binding.getValidators(); if (validators != null) { for (Validator validator: validators) {
Binding binding = ((FxComponent) node).getBinding(); if (binding != null) { buf.append(" bound to ").append(binding.getMember());
@Override public void fireToView(Binding binding, Object parent, Object modelValue) throws BindingVetoException { if (toViewListeners != null) { BindingEvent evt = null; for (ToViewListener l: toViewListeners) { if (evt == null) { evt = binding.createBindingEvent(true, parent, modelValue); } l.toView(evt); } } }
/** * Programmatically adds a binding to this form. * * @param binding the binding to add */ @Override public void addBinding(Binding binding) { if (binding instanceof FormTableBinding) { FormTableBinding oldBinding = boundPaths.put(binding.getMember().getMemberPath(), (FormTableBinding) binding); if (oldBinding != null) { throw new BindingException(binding + ": binding path '" + binding.getMember().getMemberPath() + "' already bound to column " + oldBinding.getColumn()); } oldBinding = boundColumns.put(((FormTableBinding) binding).getColumn(), (FormTableBinding) binding); if (oldBinding != null) { throw new BindingException(binding + ": column '" + ((FormTableBinding) binding).getColumn() + "' already bound to " + oldBinding.getMember().getMemberPath()); } } }