Magnolia 5 UI field transformer classes no longer exist in the Magnolia 6 UI framework. The transformer functionality is now distributed among different components. The following is a summary of what the components do:
- Modify the target property name by appending a locale suffix or by prepending a field prefix. This is done by concrete
PropertySet
implementations (JcrItemPropertySet
) and/or byPropertyNameDecorator
. - Resolve an item data source of complex fields, a functionality usually covered by item providers.
- Manage item data sources of multi-value field entries. This is handled by
MultiFormView.EntryResolution
, which resolves the children and binds each of them to the item provider strategy.
Replacements for field transformers
Default 5 UI transformer classes
info.magnolia.ui.form.field.transformer.* | In 6 UI |
---|---|
basic.BasicTransformer
| Not needed. Its functions are obsolete; some are taken over by Vaadin PropertySet. |
composite.CompositeTransformer
| Use |
composite.SwitchableTransformer | Use |
Other 5 UI transformer classes
info.magnolia.ui.form.field.transformer.* | In 6 UI |
---|---|
composite.DelegatingCompositeFieldTransformer | Use info.magnolia.ui.editor.CurrentItemProvider . |
composite.NoOpCompositeTransformer | Not needed. |
multi.DelegatingMultiValueFieldTransformer | Use info.magnolia.ui.editor.CurrentItemProvider . |
multi.DelegatingMultiValueSubnodeTransformer | Use
|
multi.MultiValueChildNodeTransformer | Deprecated, no automatic conversion. |
multi.MultiValueChildrenNodeTransformer | Deprecated, no automatic conversion. |
multi.MultiValueJSONTransformer | Deprecated, no automatic conversion. |
multi.MultiValueSubChildrenNodePropertiesTransformer | Use
|
multi.MultiValueSubChildrenNodeTransformer | Deprecated, no automatic conversion. |
Example configurations
Magnolia 5 UI definition | Magnolia 6 UI equivalent |
---|---|
form: tabs: - name: tabSwitch fields: - name: message fieldType: switchable options: - name: plainText value: plainText - name: richText value: richText fields: - name: plainText fieldType: text - name: richText fieldType: richText - name: tabMultiBasic fields: - name: multitext fieldType: multiValue transformerClass: info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueFieldTransformer field: name: txt fieldType: text - name: tabMultiDeleg fields: - name: items fieldType: multiValue transformerClass: info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueSubnodeTransformer field: name: itemComposite fieldType: composite transformerClass: info.magnolia.ui.form.field.transformer.composite.DelegatingCompositeFieldTransformer fields: - name: text fieldType: text - name: link fieldType: text - name: tabMultiLex fields: - name: itemsLex fieldType: multiValue transformerClass: info.magnolia.ui.form.field.transformer.multi.MultiValueSubChildrenNodePropertiesTransformer field: name: itemComposite fieldType: composite transformerClass: info.magnolia.ui.form.field.transformer.composite.NoOpCompositeTransformer fields: - name: text fieldType: text - name: link fieldType: text | form: properties: switchable: $type: switchableField field: $type: radioButtonGroupField datasource: $type: optionListDatasource options: - name: plain value: plain - name: rich value: rich itemProvider: $type: currentItemProvider propertyNameDecorator: info.magnolia.ui.field.PrefixNameDecorator forms: - name: plain properties: plainText: $type: textField - name: rich properties: richText: $type: richTextField multitext: $type: jcrMultiField itemProvider: $type: currentItemProvider field: name: text $type: textField items: $type: jcrMultiField itemProvider: $type: jcrChildNodeProvider supportsI18N: false entryResolution: class: info.magnolia.ui.editor.MultiFieldEntryResolution$Definition propertyNameDecorator: info.magnolia.ui.field.AlwaysEmptyPrefixNameDecorator field: $type: compositeField properties: text: $type: textField link: $type: textField itemsLex: $type: jcrMultiField itemProvider: $type: jcrChildNodeProvider supportsI18N: false entryResolution: class: info.magnolia.ui.editor.ByLexicographicallyIndexedChildNodes.Definition field: $type: compositeField properties: text: $type: textField link: $type: textField |
Personalization (trait) transformers
The 5 UI transformers with personalization-related functions have undergone the following changes, but still use the old framework (magnolia-personalization-compatibility
).
info.magnolia.personalization.* | Description |
---|---|
cookie.CookieFieldTransformer | Custom transformer for cookie traits. |
ui.SimpleTraitValueTransformer | Now functions as the default trait transformer. |
visitor.transformer.VisitorTraitListToSetTransformer | Still exists, but is no longer needed. |