loading table of contents...

Studio Developer Manual / Version 2310

Table Of Contents

9.24.1 Studio Configuration

Annotated LinkLists are stored in a struct property. This is in contrast to a plain LinkList which is stored in a LinkList property. Therefore, when introducing a new Annotated LinkList, the doctype definition needs to have an XML property with the Struct grammar.

<XmlProperty Name="structList" Grammar="coremedia-struct-2008" extensions:translatable="true"/>

The property editor for an annotated LinkList usually is a LinkListPropertyField with the following configuration:

  • linkListWrapper: An instance of StructLinkListWrapper, that wraps the annotated list

  • rowWidget: An AnnotatedLinkListWidget that contains items which implement IAnnotatedLinkListForm

Existing Annotated LinkLists can be extended with custom forms by using the AddItemsPlugin on the AnnotatedLinkListWidget.

The custom forms need to implement the interface IAnnotatedLinkListForm (which basically is providing a settingsVE configuration) and can then start using property editors bound to sub properties of the settingsVE ValueExpression via extendBy.



Like every property editor the annotated link list form should consider the read-only state. For this our default property editors always provide the config forceReadOnlyValueExpression. Either implement this manually or utilize a base component like PropertyFieldGroup (see example below).

The row expander of an Annotated LinkList changes its appearance based upon the state of its row widget(s) (see Figure 9.8, “ Annotated LinkList with item with changed default value ”, the changed parts are highlighted with red border). That is, if there is at least one row widget instance in a row which differs from the default state, the row expander icon gets inverted. So the studio user gets a hint that at least one of the row widget instances has been changed.

Annotated LinkList with item with changed default value

Figure 9.8.  Annotated LinkList with item with changed default value

To determine if a row widget differs from its default state, every IAnnotatedLinkListForm may provide a custom method with the following signature: isAnnotated(annotatedLinkListProvider:IAnnotatedLinkListProvider, rowIndex:number):boolean

These custom methods are set via the LinkListPropertyField config option rowWidgetsAnnotatedPredicates. If there are no custom methods, a default strategy is chosen to determine if the row expander has to change its appearance. If there is at least one custom method, then the default strategy is ignored.

Search Results

Table Of Contents

Your Internet Explorer is no longer supported.

Please use Mozilla Firefox, Google Chrome, or Microsoft Edge.