{
    "$schema": "http://json-schema.org/draft-04/schema",
    "definitions": {
        "TcHmi.Controls.Beckhoff.TcHmiTreeView": {
            "$schema": "http://json-schema.org/draft-04/schema",
            "type": "object",
            "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl",
            "frameworkControlType": "TcHmiTreeView",
            "frameworkControlNamespace": "TcHmi.Controls.Beckhoff"
        },
        "TcHmiTreeView": {
            "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTreeView"
        },
        "TcHmi.Controls.Beckhoff.TcHmiTreeView.Index": {
            "type": "array",
            "title": "The hierarchical index of treeview data.",
            "items": {
                "type": "number"
            }
        },
        "TcHmi.Controls.Beckhoff.TcHmiTreeView.DataSymbol": {
            "allOf": [
                {
                    "$ref": "tchmi:framework#/definitions/Symbol"
                },
                {
                    "frameworkSymbolSubType": {
                        "$ref": "tchmi:general#/definitions/Array"
                    }
                }
            ]
        },
        "TcHmi.Controls.Beckhoff.TcHmiTreeView.ColumnDefinitionList": {
            "title": "ColumnDefinitionList",
            "anyOf": [
                {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "engineeringColumns": ["name", "label", "control", "width", "widthUnit"],
                        "propertiesMeta": [
                            {
                                "name": "cellBackground",
                                "displayName": "Cell background",
                                "category": "Colors",
                                "displayPriority": 10,
                                "description": "Background color of the cells in this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "textColor",
                                "displayName": "Text color",
                                "category": "Colors",
                                "displayPriority": 10,
                                "description": "Text color of the cells in this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "name",
                                "displayName": "Name",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Name of the property in the srcData object",
                                "defaultValue": "",
                                "defaultValueInternal": null
                            },
                            {
                                "name": "label",
                                "displayName": "Label",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Name of the label for this column",
                                "defaultValue": "",
                                "defaultValueInternal": null
                            },
                            {
                                "name": "control",
                                "displayName": "Control",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Type of the input elements for this column",
                                "defaultValue": "TextBox",
                                "defaultValueInternal": null
                            },
                            {
                                "name": "width",
                                "displayName": "Width",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Width for this column",
                                "defaultValue": 100,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "widthUnit",
                                "refTo": "width",
                                "displayName": "Width unit",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Width unit for this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.",
                                "defaultValue": "px",
                                "defaultValueInternal": "px"
                            },
                            {
                                "name": "resize",
                                "displayName": "Resize",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Can this column be resized? Columns that have factor as their widthUnit can never be resizeable.",
                                "defaultValue": false,
                                "defaultValueInternal": false
                            },
                            {
                                "name": "minWidth",
                                "displayName": "Min width",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Minimum width for this column",
                                "defaultValue": 100,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "minWidthUnit",
                                "refTo": "minWidth",
                                "displayName": "Min width unit",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Minimum width unit for this column",
                                "defaultValue": "px",
                                "defaultValueInternal": "px"
                            },
                            {
                                "name": "editable",
                                "displayName": "Editable",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Can this column be edited (text, number) or operated (button, checkbox)?",
                                "defaultValue": false,
                                "defaultValueInternal": false
                            },
                            {
                                "name": "sortable",
                                "displayName": "Sortable",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Can this column be sortedby user interaction?",
                                "defaultValue": true,
                                "defaultValueInternal": true
                            },
                            {
                                "name": "horizontalAlignment",
                                "displayName": "Horizontal alignment",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Horizontal alignment of this column",
                                "defaultValue": "Left",
                                "defaultValueInternal": "Left"
                            },
                            {
                                "name": "verticalAlignment",
                                "displayName": "Vertical alignment",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Vertical alignment of this column",
                                "defaultValue": "Center",
                                "defaultValueInternal": "Center"
                            },
                            {
                                "name": "headerHorizontalAlignment",
                                "displayName": "Header Horizontal alignment",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Horizontal alignment of the header of this column",
                                "defaultValue": "Center",
                                "defaultValueInternal": "Center"
                            },
                            {
                                "name": "headerVerticalAlignment",
                                "displayName": "Header Vertical alignment",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Vertical alignment of the header of this column",
                                "defaultValue": "Center",
                                "defaultValueInternal": "Center"
                            },
                            {
                                "name": "format",
                                "displayName": "Format",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "A reference of function which is called with each entry",
                                "allowedFunctions": {
                                    "returnType": "tchmi:general#/definitions/String",
                                    "requiredArguments": [
                                        {
                                            "type": "tchmi:general#/definitions/Any",
                                            "description": "The value to format."
                                        }
                                    ],
                                    "waitMode": "Synchronous"
                                },
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "dataDefinitions",
                                "displayName": "Data definitions",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Mapping from the srcData to a combobox or image selection. \nText to show on Buttons. \nRestrictions for number inputs.",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "ignoreEscapeSequences",
                                "displayName": "Ignore Escape Sequences",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "When set to true a backslash in a text will be shown verbatim in the HMI",
                                "defaultValue": false,
                                "defaultValueInternal": false
                            },
                            {
                                "name": "autoFocusOut",
                                "displayName": "Auto Focus-Out",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key",
                                "defaultValue": true,
                                "defaultValueInternal": true
                            },
                            {
                                "name": "autoSelectText",
                                "displayName": "Auto Select Text",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "When set to true all text within the control will be selected when the control gains focus",
                                "defaultValue": false,
                                "defaultValueInternal": false
                            }
                        ],
                        "properties": {
                            "cellBackground": {
                                "$ref": "tchmi:framework#/definitions/Color"
                            },
                            "textColor": {
                                "anyOf": [
                                    {
                                        "$ref": "tchmi:framework#/definitions/SolidColor"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "name": {
                                "type": "string",
                                "minLength": 1
                            },
                            "label": {
                                "type": "string"
                            },
                            "control": {
                                "type": "string",
                                "enum": [
                                    "TextBox",
                                    "TextBlock",
                                    "CheckBox",
                                    "Image",
                                    "ComboBox",
                                    "NumericInput",
                                    "SpinboxInput",
                                    "PasswordInput",
                                    "Button",
                                    "ToggleButton",
                                    "ToggleSwitch",
                                    "RadioButton",
                                    "DateTimeInput",
                                    "TimespanInput",
                                    "AutoDetectControl"
                                ]
                            },
                            "width": {
                                "type": "number",
                                "minimum": 0
                            },
                            "widthUnit": {
                                "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor"
                            },
                            "resize": {
                                "type": "boolean"
                            },
                            "minWidth": {
                                "type": "number",
                                "minimum": 0
                            },
                            "minWidthUnit": {
                                "$ref": "tchmi:framework#/definitions/MeasurementUnit"
                            },
                            "editable": {
                                "type": "boolean"
                            },
                            "sortable": {
                                "type": "boolean"
                            },
                            "horizontalAlignment": {
                                "$ref": "tchmi:framework#/definitions/HorizontalAlignment"
                            },
                            "verticalAlignment": {
                                "$ref": "tchmi:framework#/definitions/VerticalAlignment"
                            },
                            "headerHorizontalAlignment": {
                                "$ref": "tchmi:framework#/definitions/HorizontalAlignment"
                            },
                            "headerVerticalAlignment": {
                                "$ref": "tchmi:framework#/definitions/VerticalAlignment"
                            },
                            "format": {
                                "$ref": "tchmi:framework#/definitions/Function"
                            },
                            "dataDefinitions": {
                                "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList"
                            },
                            "ignoreEscapeSequences": {
                                "type": "boolean"
                            },
                            "autoFocusOut": {
                                "type": "boolean"
                            },
                            "autoSelectText": {
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "name",
                            "label",
                            "control",
                            "width",
                            "widthUnit",
                            "resize",
                            "minWidth",
                            "minWidthUnit",
                            "editable",
                            "horizontalAlignment",
                            "verticalAlignment"
                        ]
                    }
                },
                {
                    "type": "object",
                    "propertiesMeta": [
                        {
                            "name": "cellBackground",
                            "displayName": "Cell background",
                            "category": "Colors",
                            "displayPriority": 10,
                            "description": "Background color of the cells in this column",
                            "defaultValue": null,
                            "defaultValueInternal": null
                        },
                        {
                            "name": "textColor",
                            "displayName": "Text color",
                            "category": "Colors",
                            "displayPriority": 10,
                            "description": "Text color of the cells in this column",
                            "defaultValue": null,
                            "defaultValueInternal": null
                        },
                        {
                            "name": "label",
                            "displayName": "Label",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Name of the label for this column",
                            "defaultValue": "",
                            "defaultValueInternal": null
                        },
                        {
                            "name": "control",
                            "displayName": "Control",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Type of the input elements for this column",
                            "defaultValue": "TextBox",
                            "defaultValueInternal": null
                        },
                        {
                            "name": "width",
                            "displayName": "Width",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Width for this column",
                            "defaultValue": 100,
                            "defaultValueInternal": null
                        },
                        {
                            "name": "widthUnit",
                            "refTo": "width",
                            "displayName": "Width unit",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Width unit for this column",
                            "defaultValue": "px",
                            "defaultValueInternal": "px"
                        },
                        {
                            "name": "resize",
                            "displayName": "Resize",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Can this column be resized?",
                            "defaultValue": false,
                            "defaultValueInternal": false
                        },
                        {
                            "name": "minWidth",
                            "displayName": "Min width",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Minimum width for this column",
                            "defaultValue": 100,
                            "defaultValueInternal": null
                        },
                        {
                            "name": "minWidthUnit",
                            "refTo": "minWidth",
                            "displayName": "Min width unit",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Minimum width unit for this column",
                            "defaultValue": "px",
                            "defaultValueInternal": "px"
                        },
                        {
                            "name": "editable",
                            "displayName": "Editable",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Can this column be edited (text, number) or operated (button, checkbox)?",
                            "defaultValue": false,
                            "defaultValueInternal": false
                        },
                        {
                            "name": "sortable",
                            "displayName": "Sortable",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Can this column be sorted by user interaction?",
                            "defaultValue": true,
                            "defaultValueInternal": false
                        },
                        {
                            "name": "horizontalAlignment",
                            "displayName": "Horizontal alignment",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Horizontal alignment of this column",
                            "defaultValue": "Left",
                            "defaultValueInternal": "Left"
                        },
                        {
                            "name": "verticalAlignment",
                            "displayName": "Vertical alignment",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Vertical alignment of this column",
                            "defaultValue": "Center",
                            "defaultValueInternal": "Center"
                        },
                        {
                            "name": "headerHorizontalAlignment",
                            "displayName": " Header Horizontal alignment",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Horizontal alignment of the header of this column",
                            "defaultValue": "Center",
                            "defaultValueInternal": "Center"
                        },
                        {
                            "name": "headerVerticalAlignment",
                            "displayName": "Header Vertical alignment",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Vertical alignment of the header of this column",
                            "defaultValue": "Center",
                            "defaultValueInternal": "Center"
                        },
                        {
                            "name": "format",
                            "displayName": "Format",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "A reference of function which is called with each entry",
                            "allowedFunctions": {
                                "returnType": "tchmi:general#/definitions/String",
                                "requiredArguments": [
                                    {
                                        "type": "tchmi:general#/definitions/Number",
                                        "description": "The value to format."
                                    }
                                ],
                                "waitMode": "Synchronous"
                            },
                            "defaultValue": null,
                            "defaultValueInternal": null
                        },
                        {
                            "name": "dataDefinitions",
                            "displayName": "Data definitions",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "Mapping from the srcData to a combobox or image selection. \nText to show on Buttons. \nRestrictions for number inputs.",
                            "defaultValue": null,
                            "defaultValueInternal": null
                        },
                        {
                            "name": "ignoreEscapeSequences",
                            "displayName": "Ignore Escape Sequences",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "When set to true a backslash in a text will be shown verbatim in the HMI",
                            "defaultValue": false,
                            "defaultValueInternal": false
                        },
                        {
                            "name": "autoFocusOut",
                            "displayName": "Auto Focus-Out",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key",
                            "defaultValue": true,
                            "defaultValueInternal": true
                        },
                        {
                            "name": "autoSelectText",
                            "displayName": "Auto Select Text",
                            "category": "General",
                            "displayPriority": 10,
                            "description": "When set to true all text within the control will be selected when the control gains focus",
                            "defaultValue": false,
                            "defaultValueInternal": false
                        }
                    ],
                    "properties": {
                        "cellBackground": {
                            "$ref": "tchmi:framework#/definitions/Color"
                        },
                        "textColor": {
                            "anyOf": [
                                {
                                    "$ref": "tchmi:framework#/definitions/SolidColor"
                                },
                                {
                                    "type": "null"
                                }
                            ]
                        },
                        "label": {
                            "type": "string"
                        },
                        "control": {
                            "type": "string",
                            "enum": [
                                "TextBox",
                                "TextBlock",
                                "CheckBox",
                                "Image",
                                "ComboBox",
                                "NumericInput",
                                "SpinboxInput",
                                "PasswordInput",
                                "Button",
                                "ToggleButton",
                                "ToggleSwitch",
                                "RadioButton",
                                "DateTimeInput",
                                "TimespanInput",
                                "AutoDetectControl"
                            ]
                        },
                        "width": {
                            "type": "number",
                            "minimum": 0
                        },
                        "widthUnit": {
                            "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor"
                        },
                        "resize": {
                            "type": "boolean"
                        },
                        "minWidth": {
                            "type": "number",
                            "minimum": 0
                        },
                        "minWidthUnit": {
                            "$ref": "tchmi:framework#/definitions/MeasurementUnit"
                        },
                        "editable": {
                            "type": "boolean"
                        },
                        "sortable": {
                            "type": "boolean"
                        },
                        "horizontalAlignment": {
                            "$ref": "tchmi:framework#/definitions/HorizontalAlignment"
                        },
                        "verticalAlignment": {
                            "$ref": "tchmi:framework#/definitions/VerticalAlignment"
                        },
                        "headerHorizontalAlignment": {
                            "$ref": "tchmi:framework#/definitions/HorizontalAlignment"
                        },
                        "headerVerticalAlignment": {
                            "$ref": "tchmi:framework#/definitions/VerticalAlignment"
                        },
                        "format": {
                            "$ref": "tchmi:framework#/definitions/Function"
                        },
                        "dataDefinitions": {
                            "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList"
                        },
                        "ignoreEscapeSequences": {
                            "type": "boolean"
                        },
                        "autoFocusOut": {
                            "type": "boolean"
                        },
                        "autoSelectText": {
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "label",
                        "control",
                        "width",
                        "widthUnit",
                        "resize",
                        "minWidth",
                        "minWidthUnit",
                        "editable",
                        "horizontalAlignment",
                        "verticalAlignment"
                    ]
                }
            ]
        },
        "TcHmiTreeView": {
            "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTreeView"
        }
    }
}
