Web UI Framework

Document Layouts

Updated: October 16, 2020

Layouts can be linked to a document type by specifying the layout names in its definition.

Here is a sample configuration excerpt:

<type id="Note"> [...] <layouts mode="any"> <layout>heading</layout> <layout>note</layout> </layouts> </type>

Layouts are defined in a given mode; layouts in the "any" mode will be used as default when no layouts are given in specific modes.

It is possible to merge layouts when redefining the document type, adding a property append="true":

<layouts mode="any" append="true"> <layout>newLayout</layout> </layouts>

Since 5.8, the property named display set on the layout configuration is enough to handle a two columns rendering, it can be set to value table_2_columns for this purpose.

Document Layouts Display

The documentLayout tag can be used to display the layouts of a document:

<div xmlns="http://www.w3.org/1999/xhtml" xmlns:nxl="http://nuxeo.org/nxforms/layout"> <nxl:documentLayout mode="view" value="#{currentDocument}" /> </div>

It is possible to make a distinction between the layouts defined in a given mode on the document, and the mode used to render layouts, for instance:

<nxl:documentLayout documentMode="header" mode="view" value="#{currentDocument}" defaultLayout="document_header" includeAnyMode="false" />

It is also possible to define a fallback mode on documents, for instance when retrieving layouts for document mode driveEdit, if no layout is resolved, it can fallback to layouts defined for document mode edit:

<nxl:documentLayout documentMode="edit" documentModeFallback="driveEdit" mode="view" value="#{currentDocument}" />