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.

...

Example side-by-side configurations

...

.

Other classes

info.magnolia.ui.form.field.transformer.*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
  • 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 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

...

Other 5 UI transformer classes

Use CurrentItemProvider.

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

  • supportI18N to false
  • propertyNameDecorator to

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

  • supportI18N to false
  • entryResolution to the now deprecated 
    info.magnolia.ui.form.field.transformer.*In 6 UI
    composite.DelegatingCompositeFieldTransformer
    
    
        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.
    composite.NoOpCompositeTransformerNot needed.
    multi.DelegatingMultiValueFieldTransformerUse info.magnolia.ui.editor.CurrentItemProvider.
    multi.DelegatingMultiValueSubnodeTransformer
    MultiFieldEntryResolution$Definition
            propertyNameDecorator: info.magnolia.ui.field.AlwaysEmptyPrefixNameDecorator
    multi.MultiValueChildNodeTransformerDeprecated, no automatic conversion.
    multi.MultiValueChildrenNodeTransformerDeprecated, no automatic conversion.
    multi.MultiValueJSONTransformerDeprecated, no automatic conversion.
    multi.MultiValueSubChildrenNodePropertiesTransformer
    
          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
    multi.MultiValueSubChildrenNodeTransformerDeprecated, no automatic conversion.

    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.
    
          orderHandler:
            class: info.magnolia.ui.editor.LexicographicallyIndexedJcrNodeOrderHandler$Definition
          field:
            $type: compositeField
            properties:
              text:
                $type: textField
              link:
                $type: textField