Im Code definierte Modell-Ansichten können mit einem XML-Layout erweitert werden (Extension-Layout). So können existierende Layouts angepasst werden und müssen nicht kopiert werden.
XML Definition
<layoutExtension extends="Detail" targetClass="Person"> ... </layoutExtension>
extends/targetClass
- Referenzieren das Basis-Layout. Diese Ansicht wird erweitert. In der Applikation werden alle Anwendungen des Basis-Layouts mit der Erweiterung ersetzt. Es entsteht somit kein neues/weiteres Layout.
Der Typ (List
/Detail
/Title
) der Erweiterungsansicht ergibt aus dem Basis-Layout welches erweitert wird.
Properties Einfügen und Positionieren
Properties können dem Basis-Layout hinzugefügt werden. (Die Properties müssen dabei bereits im Modell vorhanden sein.)
Neues Property einfügen
<propertyLink link="FirstName" (insertAfter="Street" | insertBefore="Street" | insertAsFirstIn="Street" | insertAsLastIn="Street")> ... </propertyLink>
Neue Gruppe einfügen
<group name="SettingsGroup" control="Group" (insertAfter="Street" | insertBefore="Street" | insertAsFirstIn="Street" | insertAsLastIn="Street")> ... <propertyLink> ... </propertyLink> ... </group>
Bestehendes Property verändern (auch Position)
<propertyLinkExtension extends="FirstName" (insertAfter="LastName" | insertBefore="LastName" | insertAsFirstIn="NameGroup" | insertAsLastIn="NameGroup")> ... </propertyLinkExtension>
Bestehende Gruppe verändern (auch Position)
<groupExtension extends="SettingsGroup" (insertAfter="LastName" | insertBefore="LastName" | insertAsFirstIn="NameGroup" | insertAsLastIn="NameGroup")> ... </groupExtension>
Wird keine Position angegeben, wird das Element auf Root Ebene des Layouts einsortiert. D.h. gegebenenfalls parallel zu Tabs etc.
Es können die gleichen Properties öfter auf dem Layout positioniert werden. Allerdings kann dasselbe Property nur einmal in der gleichen Gruppe vorkommen.