Im Code definierte Modell-Ansichten können mit einem XML-Layout erweitert werden (Layout-Extension-Layout). So können existierende Layouts angepasst werden und müssen nicht kopiert werden.
XML Definition
Extends
Code Block |
---|
|
<layout<layoutExtension nameextends="Detail" type="Extension" targetClass="Person">
<propertyLink link="CreatedOn" control="DateTimePicker">
<caption en-CH="Created on" de-CH="Erstellt am" />
<aspects>
<positionAspect after="FirstName"/>
</aspects>
</propertyLink>
</layout> |
...
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.
Copies
Code Block |
---|
|
<layoutExtension name="DetailCopy" copies="Detail" targetClass="Person">
...
</layoutExtension> |
name
- muss von das Basis-Layout unterscheiden
copies/targetClass
- Referenzieren das Basis-Layout. Diese Ansicht wird kopiert und eine neue Ansicht erstellt.
Der Typ (List
/Detail
/Title
) der Erweiterungsansicht ergibt aus dem Basis-Layout welches kopiert wird.
Properties und Gruppen Einfügen und Positionieren
Properties können dem Basis-Layout hinzugefügt werden. (Die Properties müssen dabei bereits im Modell vorhanden sein.) Mit PropertyLinks
werden die neuen Properties eingefügt.
Dabei kann ein PositionAspect
angegeben werden, welcher die Position des neuen Properties bestimmt. Als Referenz wird dazu ein bereits vorhandenes Property innerhalb des Basis Layouts verwendet. Die Positionierung kann mit dem after
oder before
Attribut erfolgen.
...
Das extends
gibt hierbei an, welches Property oder Grupper erweitert werden soll. Mit einem Attribut (insertAfter="Street" | insertBefore="Street" | insertAsFirstIn="Street" | insertAsLastIn="Street")
kann festgelegt werden an welcher Stelle das Property oder Gruppe eingefügt wird. Hierbei wird zuerst nach der ID dann nach dem Namen gesucht.
Neues Property einfügen
Code Block |
---|
|
<propertyLink link="FirstName" (insertAfter="Street" | insertBefore="Street" | insertAsFirstIn="Street" | insertAsLastIn="Street")>
...
</propertyLink> |
Neue Gruppe einfügen
Code Block |
---|
|
<group name="SettingsGroup" control="Group" (insertAfter="Street" | insertBefore="Street" | insertAsFirstIn="Street" | insertAsLastIn="Street")>
...
<propertyLink>
...
</propertyLink>
...
</group> |
Bestehendes Property verändern (auch Position)
Code Block |
---|
|
<propertyLinkExtension extends="FirstName" (insertAfter="LastName" | insertBefore="LastName" | insertAsFirstIn="NameGroup" | insertAsLastIn="NameGroup")>
...
</propertyLinkExtension> |
Bestehende Gruppe verändern (auch Position)
Code Block |
---|
|
<groupExtension extends="SettingsGroup" (insertAfter="LastName" | insertBefore="LastName" | insertAsFirstIn="NameGroup" | insertAsLastIn="NameGroup")>
...
</groupExtension> |
Note |
---|
Wird keine Position angegeben, wird das Element auf Root Ebene des Layouts einsortiert. D.h. gegebenenfalls parallel zu Tabs etc. |
Note |
---|
Es können die gleichen Properties öfter auf dem Layout positioniert werden. Allerdings kann dasselbe Property nur einmal in der gleichen Gruppe vorkommen. |