Change By: Christian Ringele (04/Nov/14 2:31 PM)
Description: Cross field validation is not a feature of the current Magnolia Form UI implementation.

I have created a general issue for requesting this feature as a general feature throughout form fields: MGNLUI-3240

In this ticket the the idea is to implement it for the CompositeField, as it would be a alternative to handle many of the use cases that occur of fields that need to be cross validated.
Possible use cases:
- A "point of interest" CompositeField with the sub-fields "Longitude' and 'Latitude'. The field is not required, BUT if in one sub field a value is entered, the other also needs a value (no value or all have a value situation).

Idea:
Extending the CompositeField by a cross field validation of its sub fields.
Overriding the validate() method and delegating to a configurable field comparator class.

POC implementation:
I tried quickly such an implementation to test if it is possible.
I created:
- CrossFieldsValidatingCompositeField.java which extends the CompositeField and its definition & factory class.
The field delegates to an implementation of the CrossFieldsComparator.java interface to do the field comparison.
- CrossFieldsComparator.java does the field comparison. 
- AllEmptyOrNoneEmpty.java is the implementation for this use case, checking if one field ha a value.

Attention: This is just a POC, not product ready code! It can be used in projects, but will probably need some adaptions.

Usage:
- Add a 'fieldTypes' mapping of the FieldDefinition and the FieldFactory class. (added bootstrap file)
- Use the CrossFieldsValidatingCompositeField class for a composite field.
- Define the crossFieldsComparator property pointing to the implementation CrossFieldsComparator for the specific use case, in this case here the AllEmptyOrNoneEmpty.

Other use cases:
Just implement another version of CrossFieldsComparator.


Constrains:
I first tried to use a Vaadin Validator on the composite field.
This doesn't work because the Validator is decoupled form the invoked filed. So The Validator is not aware of any configured sub fields of a "Magnolia Composite Field".
Providing this values to the Validator to do a comparison would be very hackish (interlinking Magnolia Configurations and Vaadin Validators).
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