close

Filter

loading table of contents...

Studio Developer Manual / Version 2010

Table Of Contents

7.20.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 and can then write new annotations using extendBy of the ValueExpression provided by the settingsVE.

The row expander of an Annotated LinkList changes its appearance based upon the state of its row widget(s) (see Figure 7.7, “ 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 7.7.  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