You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 52 Next »

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 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.

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 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

Switchable in 5 UISwitchable in 6 UI
- name: tabSwitch
      fields:
        - name: message
          fieldType: switchable
          label: Message
          options:
            - name: plainText
              value: plainText
            - name: richText
              value: richText
          fields:
            - name: plainText
              fieldType: text
            - name: richText
              fieldType: richText
  properties:
    message:
      $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

Other 5 UI transformer classes

info.magnolia.ui.form.field.transformer.*In 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
  • 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
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.
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels