Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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 by PropertyNameDecorator.
  • 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.

Table of Contents

Replacements for

...

transformers

Default

...

classes

info.magnolia.ui.form.field.transformer.* In Magnolia 6 UI
basic.BasicTransformer Not needed. Its functions are obsolete; some are taken over by Vaadin PropertySet.
composite.CompositeTransformer

Use info.magnolia.ui.editor.CurrentItemProvider and set propertyNameDecorator to info.magnolia.ui.field.PrefixNameDecorator.

composite.SwitchableTransformer

Use info.magnolia.ui.editor.CurrentItemProvider and set propertyNameDecorator to info.magnolia.ui.field.PrefixNameDecorator.

Other

...

classes

info.magnolia.ui.form.field.transformer.*In Magnolia 6 UI
composite.DelegatingCompositeFieldTransformerUse info.magnolia.ui.editor.CurrentItemProvider.
composite.NoOpCompositeTransformerNot needed.
multi.DelegatingMultiValueFieldTransformerUse info.magnolia.ui.editor.CurrentItemProvider.
multi.DelegatingMultiValueSubnodeTransformer

Use info.magnolia.ui.editor.JcrChildNodeProvider and set:

  • supportI18N to false
  • entryResolution to info.magnolia.ui.editor.MultiFieldEntryResolution$Definition
  • propertyNameDecorator to info.magnolia.ui.field.AlwaysEmptyPrefixNameDecorator
multi.MultiValueChildNodeTransformerDeprecated, no automatic conversion.
multi.MultiValueChildrenNodeTransformerDeprecated, no automatic conversion.
multi.MultiValueJSONTransformerDeprecated, no automatic conversion.
multi.MultiValueSubChildrenNodePropertiesTransformer

Use info.magnolia.ui.editor.JcrChildNodeProvider and set:

  • supportI18N to false
  • entryResolution to the now deprecated info.magnolia.ui.editor.ByLexicographicallyIndexedChildNodes.Definition.ByLexicographicallyIndexedChildNodes$Definition
  • orderHandler to the now deprecated info.magnolia.ui.editor.LexicographicallyIndexedJcrNodeOrderHandler$Definition
multi.MultiValueSubChildrenNodeTransformerDeprecated, no automatic conversion.

Personalization transformers

Transformers with personalization-related functions still use the Magnolia 5 UI framework (magnolia-personalization-compatibility).

info.magnolia.personalization.* Description
cookie.CookieFieldTransformerCustom transformer for cookie traits.
ui.SimpleTraitValueTransformerNow functions as the default trait transformer.
visitor.transformer.VisitorTraitListToSetTransformerStill exists, but is no longer needed.

Example definitions

The following configurations in both frameworks will produce the same results.

Magnolia 5 UI definitionMagnolia 6 UI equivalent
Code Block
languageyml
collapsetrue
form:
  tabs:
    - name: tabSwitch
      fields:
        - name: messageswitchable
          fieldType: switchable
          options:
            - name: plainTexttext
              value: plainTexttext
            - name: richText
              value: richText
          fields:
            - name: plainTexttext
              fieldType: text
            - name: richText
              fieldType: richText

    - name: tabMultiBasic
      fields:
        - name: multitext
          fieldType: multiValue
          transformerClass: info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueFieldTransformer
          field:
            name: txttext
            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
Code Block
languageyml
collapsetrue
form:
  properties:
    switchable:
      $type: switchableField
      field:
        $type: radioButtonGroupField
        datasource:
          $type: optionListDatasource
          options:
            - name: plaintext
              value: plaintext
            - name: richrichText
              value: richrichText
      itemProvider:
        $type: currentItemProvider
      propertyNameDecorator: info.magnolia.ui.field.PrefixNameDecorator
      forms:
        - name: plaintext
          properties:
            plainTexttext:
              $type: textField
        - name: richrichText
          properties:
            richText:
              $type: richTextField

    multitext:
      $type: jcrMultiField
      itemProvider:
        $type: currentItemProvider
      field:
        name: text
        $type: textField

    items:
      $type: jcrMultiField
      itemProvider:
        $type: jcrChildNodeProvider
        supportI18N: false
      entryResolution:
        class: info.magnolia.ui.editor.MultiFieldEntryResolution.DefinitionMultiFieldEntryResolution$Definition
        propertyNameDecorator: info.magnolia.ui.field.AlwaysEmptyPrefixNameDecorator
      field:
        $type: compositeField
        properties:
          text:
            $type: textField
          link:
            $type: textField

    itemsLex:
      $type: jcrMultiField
      itemProvider:
        $type: jcrChildNodeProvider
        supportI18N: false
      entryResolution:
        class: info.magnolia.ui.editor.ByLexicographicallyIndexedChildNodes.Definition.ByLexicographicallyIndexedChildNodes$Definition
      orderHandler:
        class: info.magnolia.ui.editor.LexicographicallyIndexedJcrNodeOrderHandler$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.CookieFieldTransformerCustom transformer for cookie traits.
ui.SimpleTraitValueTransformerNow functions as the default trait transformer.
visitor.transformer.VisitorTraitListToSetTransformerStill exists, but is no longer needed.