Versions Compared

Key

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

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 the features what the components do:

  • Modify the target property name by appending a locale suffix or by prepending a composite field prefix. This is now 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 required and not usedneeded. Its functions are obsolete; some are taken over by Vaadin PropertySet.
composite.CompositeTransformer

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

composite.SwitchableTransformer

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

Other

...

classes

MultiValueChildrenNodeTransformerCurrentItemProvider
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 (warning) 6.2.1+

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

  • supportI18N
 to false and propertyNameDecorator to (in
  • to false
  • entryResolution to info.magnolia.ui.
field.AlwaysEmptyPrefixNameDecorator
  • editor.MultiFieldEntryResolution$Definition
  • propertyNameDecorator to
  • info.magnolia.ui.
editor
  • field.
MultiFieldEntryResolution)
  • AlwaysEmptyPrefixNameDecorator
multi.MultiValueChildNodeTransformerinfo.magnolia.ui.editor.CurrentItemProviderDeprecated, no automatic conversion.
multi.MultiValueChildrenNodeTransformerDeprecated, no automatic conversion.
multi.MultiValueJSONTransformerDeprecated, no automatic conversion.
multi.MultiValueSubChildrenNodePropertiesTransformer

Use info.magnolia.ui.editor.

multi.MultiValueJSONTransformer

JcrChildNodeProvider and set:

  • supportI18N to false
  • entryResolution to the now deprecated info.magnolia.
rest.
  • ui.
field
  • editor.
JsonMultiFieldProvider
multi.MultiValueSubChildrenNodePropertiesTransformer (warning) 6.2.1+
  • ByLexicographicallyIndexedChildNodes$Definition
  • orderHandler to the now deprecated info.magnolia.ui.editor.
JcrChildNodeProvider
  • LexicographicallyIndexedJcrNodeOrderHandler$Definition
multi.MultiValueSubChildrenNodeTransformerinfo.magnolia.ui.editor.CurrentItemProvider

Personalization (trait) transformers

Deprecated, no automatic conversion.

Personalization transformers

Transformers The 5 UI transformers with personalization-related functions have undergone the following changes, but still use the old 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 UIMagnolia 6 UI
Code Block
languageyml
collapsetrue
form:
  tabs:
    - name: tabSwitch
      fields:
        - name: switchable
          fieldType: switchable
          options:
            - name: text
              value: text
            - name: richText
              value: richText
          fields:
            - name: text
              fieldType: text
            - name: richText
              fieldType: richText

    - name: tabMultiBasic
      fields:
        - name: multitext
          fieldType: multiValue
          transformerClass: info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueFieldTransformer
          field:
            name: text
            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: text
              value: text
            - name: richText
              value: richText
      itemProvider:
        $type: currentItemProvider
      propertyNameDecorator: info.magnolia.ui.field.PrefixNameDecorator
      forms:
        - name: text
          properties:
            text:
              $type: textField
        - name: richText
          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$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
      orderHandler:
        class: info.magnolia.ui.editor.LexicographicallyIndexedJcrNodeOrderHandler$Definition
      field:
        $type: compositeField
        properties:
          text:
            $type: textField
          link:
            $type: textField