# GuiObjectColumnType (Complex Type)

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

Configuration of the object list column. This is supposed to be universal mergeable configuration. It may be specified in global configuration, roles but also in user's preferences. Therefore it may refer to the columns specified by the "higher" configuration and override some parts of that (e.g. hide/show columns, change ordering, etc.). When merging the configurations there is no way how to remove columns. New columns may be added, setting of the existing columns may be changed, but the columns may not be removed. If the columns should not be displayed then it may be hidden.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
name | property string | [1,1] | Column name (identifier).
description | property string | [0,1] | Free-form description.
path | property ItemPathType | [0,1] | Path of the item (property) that this form display or that is taken as an primary input for the expression (planned for future).
display | container DisplayType | [0,1] | Specification of column display properties.
visibility | property UserInterfaceElementVisibilityType | [0,1] | Defines, whether this column will be visible or it will be hidden.
previousColumn | property string | [0,1] | Name of the column that has to be displayed before this column.
expression | property ExpressionType | [0,1] | Expression to be used to produce value for the column.

- ### Items

  - #### name

    Flags: RAM,runtime

    Multiplicity: [1,1]

    Column name (identifier). This element is not displayed to the user. It is used for identification of the column and referencing (e.g. previous column). The column definitions that have the same name in different layers (global, role, user) will be merged together.

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Free-form description. It is not displayed to the user. It is supposed to be used by system administrators to explain the purpose of the configuration.

  - #### path

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Path of the item (property) that this form display or that is taken as an primary input for the expression (planned for future). Even if expression is used to display the column value, we need some reference field that will be used to sort the table when sorting by this column is selected. We cannot sort by the output of the expression as that is not stored in the repo.

  - #### display

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Specification of column display properties. This can be used to override the default column label or presentation style. (Only label is implemented in midPoint 3.6)

  - #### visibility

    Flags: RAM,runtime,AVals:4

    Multiplicity: [0,1]

    Defines, whether this column will be visible or it will be hidden. If not specified then it defaults to automatic visibility.

  - #### previousColumn

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Name of the column that has to be displayed before this column. This value defines ordering in which the columns should be displayed. The first column has no value in this element. If there are multiple columns that specify the same preceding columns then the implementation may choose any ordering of such columns. However, the algorithm should be deterministic: the same ordering should be used every time (alphabeting ordering based on "path" or displayOrder from the schema are good candidates for deterministic ordering).

  - #### expression

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Expression to be used to produce value for the column.

    Column expressions are EXPERIMENTAL. They work only under a very specific circumstances.