UI Hints¶
UI hints is a section of the property definition JSON. It contains specifications to assist in the presentation and flow of the property dialog. The specifications indicate which controls to use to display and gather input on the fields. UI hints schema
The UI Hints section consists a set of simple and complex attributes.
The simple attributes are:
id
(string) Dialog id.label
(object) External name of dialog.description
(object) Description of dialog.editor_size
(string) The width of the properties editor panel. This can have a value of"small"
,"medium"
,"large"
or"max"
. The default is"small"
.- When
"small"
is specified the properties panel is displayed with a default width of 320px and with a resize button that allows the panel to be increased in size up to the"medium"
size which is 480px. - When
"medium"
is specified the properties panel has a width of 480px and with a resize button that allows the panel to be increased in size up to the"large"
size which is 640px. - When
"large"
is specified the properties panel has a width of 640px and with a resize button that allows the panel to be increased in size up to the"max"
size which is 900px. - When
"max"
is specified the properties panel has a width of 900px and no resize button is displayed.
- When
pixel_width
(object) This optional property gives finer control over the minimum and maximum sizes of the properties editor panel. If this is omitted the properties editor width is controlled by theeditor_size
property.pixel_width
is an object with two propertiesmin
andmax
which are both numbers.- If
min
is specified it overrides the default size of the shrunken panel andmax
is based on theeditor_size
value. - If
max
is specified it overrides the default size of the expanded panel andmin
is based on theeditor_size
value. - If
editor_size
is set to"large"
only themax
value will be used to specify the size of the panel and no resize button will be displayed.
- If
A warning will be displayed in the console if you specify an invalid value for either min
or max
such as making min
greater than max
.
Example of the simple attributes:
"uihints": {
"id":"org.apache.spark.ml.ibm.transformers.Distinct",
"icon": "images/transformationspark.svg",
"label": {
"default": "Distinct"
},
"editor_size": "medium",
"pixel_width": {
"min": 400,
"max": 800
},
"description": {
"default": "Remove rows to leave only rows with distinct combinations of rows"
}
The complex attributes of the UI hints section are:
Group-info¶
Group info attributes.
id
(string) Required Panel idtype
(string) The group type to be displayed. See the Group/Panel Controls section of the Controls page.depends_on_ref
(string) Property name this group depends upon. Valid for panelSelector groups only.label
(object) Group label.description
(object) Group description. Only used withtextPanel
andactionPanel
.- See Resource Definition
- See Dynamic Text Expressions
link
(object) Optional link in the description. tooltipLinkHandler callback must be defined whenever link object is added in uiHints..id
(string) Required unique link id.data
(object) Data passed to the tooltipLinkHandler callback.
parameter_refs
(array[string]) List of parameter to be displayed.action_refs
(array[string]) List of action to be displayed. Used withactionPanel
only.group_info
(object) List of additional group information.data
(any) Returned in custom panel constructor without any changes.insert_panels
(boolean) Indicates whether panels, contained with a panelSelector, should be inserted between the radio buttons of a radio button set indicated by the depends_on_ref parameter.nested_panel
(boolean) Indicate whether panel should be nested. Nested panels are indented by 16px from the left and display left border. Default is false.class_name
(string) Optional classname for this groupopen
(boolean) Optional used to determine if a panel should be open or not by default. Used withtwistyPanel
only. Default isfalse
.
Example group info section:
"group_info": [
{
"id": "settings",
"label": {
"default": "Settings"
},
"type": "columnSelection",
"parameter_refs": [
"keys"
]
}
]
UI-only Parameters¶
UI-only parameters require information about the parameters same as the parameter definition information used for the backend parameters. The UI-only parameter definition information is stored in the UI-hints section in the sub-section named ui_parameters
. The format of the information in the ui_parameters
sub-section is documented in the Parameter Definition section of Parameter Definitions page.
Example
"ui_parameters": [
{
"id":"databaseResource",
"type":"boolean",
"default":true
},
{
"id":"toi",
"type":"double",
"default":0.0
}
]
The UI-only parameters need to be added to other UI Hints sections (for example Group Info
and canbe refered to by the parameter_ref
field just like backend parameters.
Parameter Info¶
The parameter info section contains the list of parameters to gather values on through the property dialogs and UI hints about each parameter. The UI hints provide information to facilitate the UI controls used to display the parameter in the property dialogs.
Parameter info attributes.
parameter_ref
(string) Required Parameter name.label
(object) External name for parameter.label_visible
(boolean) Determines whether to display the label for a control.description
(object) Description of parameter with optional placement context.- See Resource Definition
placement
(string) Placement context for the text. Valid values areas_tooltip, on_panel
.link
(object) Optional link in the description. tooltipLinkHandler callback must be defined whenever link object is added in uiHints..id
(string) Required unique link id.data
(object) Data passed to the tooltipLinkHandler callback.
control
(string) Which control to use. See Parameter Controls section of the Controls page.increment
(number) Determines the increment/decrement value for the spinner control only. The default value is1
.orientation
(string) Determines how the control is displayed. Valid values arevertical, horizontal
.width
(number) Column width for tables. The widths provided for table columns are used to calculate relative widths for each table column. So for example a 3 column table with widths of 20, 30, and 50 would use 20%, 30%, and 50% of the overall table width, respectively.char_limit
(number) Limits the number of characters a user can enter into the control for string parameters only.display_chars
(number) This has been deprecated and is subject to removal. Limits the number of characters displayed for a text field in a column in a table. The text will have an ellipsis appended at this limit. Defaults to 64 characters.separator
(string) Determines where to put a separator relative to the current control. Valid values areafter, before
.visible
(boolean) Determines whether to display control in a table cell. Used in complex types only.read_only
(boolean) Determines whether the control should be immutable or can be edited.place_holder_text
(object) Text hint for the user displayed input controls.helper_text
(object) Additional text to be displayed below the control often used to explain the correct data format.resource_key
(string) Used as a key for enum value labels in the resources section of property definition.edit_style
(string) Editing style of elements in a table. Valid values aresubpanel, inline, on_panel
.value_icons
(array[string]) For enumerated types, this defines the set of icons for the valid values. The ordering must be consistent with the order in the parameter enum attribute.filterable
(boolean) Determines if this column values can be filtered so that only rows that match the filter in column values are shown in the table. Applies to complex parameters only.sortable
(boolean) Determines if this column values can be sorted into ascending/descending order in a table. Applies to complex parameters only.number_generator
(object) Describes a number generator button beside numeric control. The ‘label’ element is a standard resource item, and the ‘range’ element contains ‘min’ and ‘max’ attributes to constrain the range of generated numbers.dm_default
(string) Data record metadata field to be used for default values in table cell columns. Typically this is used with parameters in complex structures in which the key field is a column name. Valid values aretype
,description
,measure
, andmodeling_role
.dm_image
(string) This can be set to display an icon of the corresponding dm type in therole
:column
field of a table. Valid values aremeasure
,type
,none
summary
(boolean) Determines if parameter should be shown in the summary when using asummaryPanel
.text_before
(object) Text to be displayed before the control- See Resource Definition
type
(string) Adds a icon and additional formatting to the text. Onlyinfo
is support at this time.- See Dynamic Text Expressions
text_after
(object) Text to be displayed after the control- See Resource Definition
type
(string) Adds a icon and additional formatting to the text. Onlyinfo
is support at this time.- See Dynamic Text Expressions
custom_control_id
(string) Id that is used to determine which custom control to use whencontrol=custom
data
(any) Returned in custom control constructor without any changes.rows
(integer) Number of rows to show in a table before scrolling starts. If one table in a panel is set to -1, that table will use the remaining available vertical space, down to a minimum of 2 rows. Used in expression and code controls to determine the number of rows to show for those controls.moveable_rows
(boolean) Determines if rows can be moved up or down in a table or array of strings.action_ref
(string) An action to be displayed.date_format
(string) A format string such as YYYY-MM-DD which describes the display and entry format for a date field.time_format
(string) A format string such as HH:mm:ss which describes the display and entry format for a time field.custom_value_allowed
(boolean) Determines if a dropdown, outside of a table, can allow a custom value to be entered.class_name
(string) Optional classname for this parameterresizable
(boolean) Determines if this column can be resized in a table. When a column is resized, width of all the columns to the right of resized column is adjusted. Applies to structure parameters only. Default isfalse
.
Example parameter info section:
"parameter_info": [
{
"parameter_ref": "keys",
"label": {
"resource_key": "sort.keys.label"
},
"description": {
"resource_key": "sort.keys.desc",
"placement": "on_panel"
},
"rows": -1
}
]
Complex Type Info¶
The complex_type_info section defines complex data types. This section is needed if in the parameters
section of the parameter definition, one of the parameters has a type that is not the base type (i.e. an array or map of base types). The type of control used for this definition depends on the group info type value.
Complex Type info attributes.
complex_type_ref
(string) Required Name of complex type, can be referenced in other places.key_definition
(string) A set of parameter info attributes about the key parameter.label
(object) External name of subpanel.parameters
(object) Required List of parameters that are part of this complex parameter. This parameter can either have a set of parameter_info attributes or other nested complex_type_info attributes.header
(boolean) Iftrue
then the table has a header row with column names. Defaults totrue
.add_remove_rows
(boolean) Iftrue
then the table can have rows added and removed. Defaults totrue
.include_all_fields
(boolean) Whentrue
andadd_remove_rows
isfalse
, ensures that all fields are included in the control at all times.row_selection
(string enum) How many rows in a table can be selected at a time.single
: only one row at a time is able to be selected.multiple
: multiple rows at a time are able to be selected.multiple-edit
: select multiple rows and allow the editing of column values of all selected rows. Clicking on “Edit” button in table toolbar, opens a subpanel which shows editable columns. All columns which haveedit_style: "inline" or undefined
are shown in the subpabel. Changing a column value in the subpanel, changes the value in all selected rows.
buttons
(array) An array of objects that define custom buttons to be displayed in this complex structure, overriding any default buttons. Each button object contains the following properties:id
(string) Required: Unique identifier used to identify the button in the callback function.label
(object): Button label to display. If an icon is specified as well, the icon will be shown to the right of the label.description
(object): Tooltip text to display when the button is hovered.icon
(string): URL to .svg image to display.carbon_icon
(string): Host provided name of Carbon icon to display. A callback function is required for the host application to return the jsx icon object imported from @carbon/icons-react library.enabled
(boolean): Button will be enabled if true, disabled if false.divider
(string enum): Display a divider before or after this button. Defaults toafter
before
Display divider before this buttonafter
Display divider after this button
Example complex_type_info section:
"complex_type_info": [
{
"complex_type_ref": "SortEntry",
"row_selection": "multiple",
"moveable_rows": true,
"add_remove_rows": false,
"include_all_fields": true,
"key_definition": {
"parameter_ref": "field",
"width": 28,
"label": {
"resource_key": "SortEntry.field.label"
}
},
"parameters": [
{
"parameter_ref": "sort_order",
"width": 16,
"resource_key": "SortEntry.sort_order",
"label": {
"resource_key": "SortEntry.sort_order.label"
},
"control": "toggletext",
"value_icons": [
"/images/up-triangle.svg",
"/images/down-triangle.svg"
]
}
]
},
{
"complex_type_ref": "FieldStorageEntry",
"key_definition": {
"parameter_ref": "field",
"label": {
"default": "",
"resource_key": "FieldStorageEntry.field"
},
"width": 26,
"sortable": true,
"filterable": true
},
"parameters": [
{
"parameter_ref": "override",
"label": {
"default": "",
"resource_key": "FieldStorageEntry.override"
},
"width": 16,
"edit_style": "inline",
"sortable": true
},
{
"parameter_ref": "storage",
"label": {
"default": "",
"resource_key": "FieldStorageEntry.storage"
},
"width": 26,
"edit_style": "inline",
"dm_default": "type"
}
],
"buttons": [
{
"id": "icon_button_1",
"carbon_icon": "Edit32",
"label": {
"resource_key": "table.somekey.label"
},
"description": {
"default": "This renders a button that has a label and Carbon icon to the right of the label.
},
"enabled": true
}
]
}
]
Title-info¶
The title_info sections defines what will be displayed in the title section alongside the titleDefinition
.
Title info attributes.
action_refs
(array[string]) List of action to be displayed in the title section. Each action_ref must have a corresponding action defined in the action_info section.
Example title info section:
"title_info": {
"action_refs": [
"increment"
]
}
Action Info¶
The action_info section defines an action. Actions are used to callback to the application to perform an operation.
Action info attributes.
id
(string) Required Id of the action.label
(object) Required External name of action.control
(string) Required The type of action. Currentlybutton
andimage
are supported.class_name
(string) Optional classname for this actionimage
(object) Properties associate with animage
action.url
(string) Location of the image to display.placement
(string) Placement of image relative to a property. Values areright
orleft
.size
(object) Pixel size of the image.height
(number) Image height in pixels.width
(number) Image width in pixels.
tooltip_direction
(string) Set tooltip direction for action image. Values areright
,left
,top
, orbottom
. Default isbottom
.
button
(object) Properties associated with action button.kind
(string) Button kind. Values are same as carbon button kind values. Default istertiary
.size
(string) Button size. Values are sm, md, lg, xl. Default issm
.
data
(any) Returned back in action callback.
{
"id": "increment",
"label": {
"default": "Increment"
},
"control": "button",
"data": {
"parameter_ref": "number"
}
}
Resource Definition¶
Used for user facing text. Allows for default values if no translations are provided.
default
(string) Default value ifresource_key
not defined.resource_key
(string) Used as a key for enum value labels in the resources section of property definition.
Dynamic text expressions¶
Used to dynamically set text based on a parameter value change. If parameter id is used then then current value for that parameter will be passed into the function.
percent(<number or parameter id>, <integer>)
Return the percent of the 1st parameter. The optional 2nd parameter determines the number of decimal places.sum(<number or parameter id>, <number or parameter id>, ...)
Returns the sum of all parameters
{
"parameter_ref": "numberfield",
"label": {
"default": "Number"
},
"text_after": {
"default": "Sum: ${sum(numberfield, 2)} with (numberfield, 2, numberfield). Percent: ${percent(numberfield,2)}"
}
}