User-interface Definition

Automatic UI Generation

One of the most powerful features of jamovi is its ability to automatically generate a functional user interface from your analysis definition (.a.yaml). When you run jmvtools::install(), jamovi looks at the type of each option and picks a sensible default control:

Option Type (.a.yaml)Default UI Control (.u.yaml)
BoolCheckBox
ListComboBox
VariableTargetLayoutBox containing a VariableLabel
VariablesTargetLayoutBox containing multiple VariableLabels
Integer / NumberTextBox

The UI YAML Structure

For many analyses, the automatically generated UI is sufficient. However, for more complex tools, you will want to customize the layout, add labels, or group controls into sections. This is where ttest.u.yaml comes in. It follows a tree structure of controls.

Properties

PropertyDescriptionForm
nameThe name of the analysis.Unique string
titleSets the title to be displayed at the top of the option panel.string
jusDefines the syntax version used (typically '2.0').string
childrenAn array of child control definitions.Array

Example: Customizing Layout

name:  descriptives
title: Descriptives
jus:   '2.0'
children:
  - type: LayoutBox
    margin: large
    children:
      - type: CheckBox
        name: plot_enabled
        label: Enable Plots
      - type: CollapseBox
        label: Advanced Options
        collapsed: true
        children:
          - type: TextBox
            name: custom_iterations
            label: Iterations

Controls

The UI can be built using a variety of specialized controls:

Base Control

Layout Controls

Parent Controls

Option Controls

Display Controls