Section author: Jonathon Love

CheckBox

Inherits from ParentControl, OptionControl

Properties

There are no CheckBox specific properties. All behavior can be achieved using the inherited properties of OptionControl and ParentControl.

Supported Option Types

  • Bool

  • NMXList

Bool

When CheckBox is bound to a Bool option type the behavior is very simple. When the option is TRUE, the CheckBox is checked.

Below is an example of a simple Bool option and a CheckBox that has been associated with it.

Option Definition

- name: descStats
  title: Descriptive statistics
  type: Bool
  default: false
  description:
      R: >
        `TRUE` or `FALSE` (default), provide descriptive statistics

UI Control Definition

- type: CheckBox
  name: descStats

Note that the optionName property of the CheckBox is not specified and therefore the option binding will use the name property of the control for the binding process instead (see OptionControl for more details).

There is also no need to specify the label property of this OptionControl as the title property of the option is adequate and will be automatically used by the CheckBox. This means that a CheckBox can be defined in two lines! If the title property of the option is not appropriate for the control then a label property can be added to the CheckBox to override it.


NMXList

When CheckBox is bound to an NMXList a few more properties are needed for it to work.

The below example shows an option with the name effectSize. This option has a property called options which describes three non-mutually exclusive sub-options that are possible within the options output. An NMXList returns an array of one or all of these sub-options.

Now a CheckBox can be used to manipulate an NMXList option by adding or removing a specified sub-option from the underlying array.

Option Definition

- name: effectSize
  type: NMXList
  title: Effect Size
  options:
      - name: eta
        title: η²
      - name: partEta
        title: partial η²
      - name: omega
        title: ω²

To achieve this two properties will need to be added to the CheckBox definition: optionName and optionPart. Both these properties are inherited from OptionControl. As has been described in OptionControl documentation, optionName is used to determine what option the CheckBox should bind to. Under normal circumstances, it is not necessary to use optionName as the property name can be used for the same effect. This however, becomes a problem for defining a CheckBox that is linked to an NMXList as the name property also has a requirement to be unique across all controls. It is not allowed to have two checkboxes (or any other control for that matter) with the same name. Because of this, when binding to an MNXList we are required to give the CheckBox a unique name and use the optionName to bind to the desired NMXList.

Now binding solely to an NMXList is not a valid configuration for a CheckBox as it requires a boolean data type to operate correctly. To overcome this, the CheckBox definition will need to not just bind to the NMXList but also to one of the sub-options. This is achieved using the optionPart property. By assigning the name of the desired sub-option to this property, the CheckBox will operate base on that sub-options existence in the underlying array.

UI Control Definition

- type: CheckBox
  name: effectSize_eta
  optionName: effectSize
  optionPart: eta

- type: CheckBox
  name: effectSize_partEta
  optionName: effectSize
  optionPart: partEta

- type: CheckBox
  name: effectSize_omega
  optionName: effectSize
  optionPart: omega

Three CheckBox’s for the three sub-options of the option NMXList.