# VirtualContainersSpecificationType (Complex Type)

### Namespace: http://midpoint.evolveum.com/xml/ns/public/common/common-3

Supertype: UserInterfaceFeatureType
Used to specify "virtual" containers for displaying details page in GUI. As an example, the user might need to reorganize attributes to some logic block such as personal info, basic info, additional info. Each of this section should have only attributes which belong to it, e.g. given name, family name, date of the birth are attributes corresponding to the personal info. Basic info section will contains attributes describing organizationalUnit, emailAddress or job position and additional info will contain attributes about user's nickname and so on.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
identifier | property string | [0,1] | GUI feature identifier.
description | property string | [0,1] | Free-form description (comment) intended for system administrator.
documentation | property string | [0,1] | Technical documentation for a particular object or construct.
display | container DisplayType | [0,1] | Display properties of the UI feature.
visibility | property UserInterfaceElementVisibilityType | [0,1] | Defines, whether this feature will be visible or it will be hidden.
displayOrder | property int | [0,1] | The content of this property specifies an order in which the user interface feature should be displayed relative to other similar features that are displayed together.
item | container VirtualContainerItemSpecificationType | [0,-1] | Item specification to display in container

- ### Items

  - #### identifier

    Flags: RAM,runtime

    Multiplicity: [0,1]

    GUI feature identifier. E.g. idetifier for view or widget. The feature specifications that come from different roles will be merged if they have the same identifier. The identifier is also used for diagnostics, e.g. used in the logfiles.

    Although identifier type is defined as string, it is strongly recommended to use URI for all customizations. The URI should be based on identifier that you own (e.g. DNS domain). Using non-URI forms may still work, but there is risk of conflicting with default midPoint configuration.

    If no identifer is specified for a view then midPoint will internally generate a value for the identifier. This internal identifier value is based on the GUI feature definition, e.g. object type and/or collection OID or other aspects of the view. The algorithm for identifier generation may change and the results are not guaranteed to be completely unique. Therefore it is strongly recommended to explictly set identifier for all the UI features in any non-trivial midPoint configuration.

    Identifier may not be needed at all in some cases (e.g. additionalPanels in views).

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Free-form description (comment) intended for system administrator. Description will NOT be displayed as any part of the UI feature. The purpose is to explain the purpose or configuration details.

  - #### documentation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Technical documentation for a particular object or construct.

    The purpose of this element is to document system configuration and behavior. The documentation will not be presented to end users. In fact, it will probably not be presented at all in midPoint user interface. This documentation element is supposed to be a part of the technical documentation of midPoint deployment. The tools than generate deployment configuration will look for these elements and combine them to compiled documentation document.

    AsciiDoc formatting is assumed for this element. Any leading or trailing whitespace is skipped. Indentation equivalent to he indentation of the first non-blank line of text is also skipped.

  - #### display

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display properties of the UI feature. It is used to display the link in the menu and so on. Only some parts of display specification may be used. E.g. for views only label is used now. E.g. the CSS properties are ignored.

  - #### visibility

    Flags: RAM,runtime,AVals:4

    Multiplicity: [0,1]

    Defines, whether this feature will be visible or it will be hidden.

    The default (since 4.0) is 'automatic', which means that all defined features will be visible if possible, unless explicitly hidden. However, this can be changed, e.g. by setting default visibility in the dashboard definition. Also, some hardcoded dashboards have different defaults. E.g. the legacy 3.x end-user home page has default visibility of "vacant".

  - #### displayOrder

    Flags: RAM,runtime

    Multiplicity: [0,1]

    The content of this property specifies an order in which the user interface feature should be displayed relative to other similar features that are displayed together. E.g. this may be used to order views in the menu, widgets on the dashboard and so on. These items that do not have any displayOrder definition will be displayed last. Items with the same displayOrder are displayed in alphabetic order.

  - #### item

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Item specification to display in container