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
BoolNMXList
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.