|
|
|
Change By:
|
Aleksandr Pchelintcev
(19/Nov/14 2:50 PM)
|
Description:
|
Initial issue title: *Field Validation: Don't ignore 'required' property on the CompositeField itself*. Setting on the {{CompositeFieldDefinition}} the required property it is ignored. So if one needs to ensure that all fields in the composite need to be filled out, one must set to all sub fields a required property.
Much easier would be if the required could be set on the composite itself.
Use case definition: If the Composite field sets required=true, every sub field in the composite needs a value.
Problem: CompositeFieldDefinition does not implement isValid(), and the super's isValid is only checking the validation of the sub fields.
This code solves the problem, I included a patch. {code} @Override public boolean isValid() { boolean isValid = super.isValid(); if (this.isRequired()) { if (isEmpty()) { isValid = false; } } return isValid; } {code}
*UPD:* - This looks like a part of more fundamental problem: the {{validate()}} method of {{com.vaadin.ui.AbstractField}} is not invoked at all. -- If it was invoked then the standard {{isRequired()}}/{{isEmpty()}} check would be handled. -- It is supposed to be called within {{com.vaadin.ui.AbstractField#isValid}} but {{AbstractCustomMultiField}} impl doesn't call super method. -- As another side effect the
value
validators of the
{{AbstractCustomMultiField}} wouldn't be triggered since that also happens in the {{validate()}} method.
|
|
|
|
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
----------------------------------------------------------------
For list details, see: http://www.magnolia-cms.com/community/mailing-lists.html
Alternatively, use our forums: http://forum.magnolia-cms.com/
To unsubscribe, E-mail to: <dev-list-unsubscr...@magnolia-cms.com>
----------------------------------------------------------------