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>
----------------------------------------------------------------

Reply via email to