- Separation of the form model from the layout
- Keeping the transient changes directly in Vaadin fields, avoiding attempts to replicate JCR session across requests (aka JCRNodeAdapter)
- Implementation of the complex fields (composites, multi-fields etc) based on the form/editor concept
- Vaadin 8 powered implementation
Comments on the structure:
- The only thing base
EditorDefinitionenforces is that the related view is an editor view to extend interface
- The latter does not enforce any particular structure of the implementation, just basic data-binding capabilities
FormDefinitionand the related
FormVieware an extension of the editor concept. Form assumes the presence of the properties and the layout definition.
EditorPropertyDefinitionis either a 'simple'
ComplexPropertyDefinitionwhich is a some form of editor view definition plus the definition of the strategy of obtaining the child item/node the complex field to bind to.
Currently there's only several impls of such strategy and all related to JCR, though this seems to be enough to do the trick for the data binding.
Note: the interface might still change!