B Useful Tables

B.1 Main Menus

The tables in this annex provide information on the different menus of the CBA ItemBuilder. The description contains references to the sections where further information can be found.

The CBA ItemBuilder contains the following main menus that can be accessed directly in the CBA ItemBuilder window:

  • File menu (see table B.1)
  • Edit menu (see table B.2)
  • Diagram menu (see table B.3)
  • Project menu (see table B.4)
  • Templates menu (see table B.5)
  • Utilities menu (see table B.6)
  • Help menu (see table B.7)
TABLE B.1: Overview of the File menu.
File > Toolbar Description
New Project yes Create a new project (see 3.2.1). If a project is currently open that contains unsaved changes, you must decide whether to save or discard the changes before creating the new project.
Open Project yes Open an existing CBA ItemBuilder project for editing and previewing (see section 1.4.1).
Save yes Save changes in the current CBA ItemBuilder project.
Save As... yes Save current CBA ItemBuilder project with new name (see section 3.2.1).
Close Project yes Closes the current project. If the current Project File contains unsaved veining, a prompt is displayed.
Exit no Exits the CBA ItemBuilder. If the current Project File contains unsaved veining, a prompt is displayed.
TABLE B.2: Overview of the Edit menu
Edit > Toolbar Description
Undo no Undo last action. Several actions can be undone (see 3.7).
Redo no Redo the undone action and perform it again. If several actions have been undone, several actions can also be redone (see 3.7).
Cut no Not implemented for Page Editor (see section 3.7.2 on how to alternatively use the Duplicate feature).
Copy no Not implemented for Page Editor (see section 3.7.2 on how to alternatively use the Duplicate feature).
Paste no Not implemented for Page Editor (see section 3.7.2 on how to alternatively use the Duplicate feature).
Delete no Not implemented for Page Editor.
Select All no Select all components in the current Page Editor
TABLE B.3: Overview of the Diagram menu
Diagram > Toolbar Description
Font no Font setting for a component selected in the Page Editor, if the component provides a text property. Similar to the settings in the tab Appearance of the Properties view (see section 3.1.4).
Fill Color no Fill color for a component selected in the Page Editor, if the component provides a Background Color property (and Is Transparent: false). Identical to the settings in the tab Appearance of the Properties view (see section 3.1.4).
Line Color no Line color for a component selected in the Page Editor, if the component provides a Border Color property (and a non-zero Border Width is configured). Identical to the settings in the tab Appearance of the Properties view (see section 3.1.4).
Line Type no (not supported)
Line Width no (not supported)
Arrow Type no (not supported)
Line Style no (not supported)
Select no Sub-menu with the entries All, All Shapes and All Connectors to select elements nested in the currently selected component of the Page Editor. Note that Connectors refers to paths defined for ImageMaps (see section 3.9.10).
Arrange no (Function not supported for current use.)
Align no Sub-menu with the entries Align Left Align Center, Align Right and Align Top Align Middle, Align Bottom.
Text Alignment no Text alignment settings for components that support the property Alignment.
Order no Sub-menu with the entries Bring to Front, Send to Back, Bring Forward and Bring Backward that can be used to change the Z-Order of components in the Drawing Area of the Page Editor. Note that this order is only for editing purposes and does not affect the order in the Preview.
Auto Size no (Function not supported for current use.)
Make Same Size no Helper to make Width, Height or Both (Width and Height) of two or more selected components identical.
Filters no (not supported)
View no Sub-menu to show or hide Grid or Rulers in the Drawing Area of the Page Editor. Also allows to activate or de-activate the Snap to Grid feature (see section 3.7.1).
Zoom no Increas zoom in the Page Editor (see section 3.1.1).
TABLE B.4: Overview of the Project menu
Project > Toolbar Description
Preview project yes Launch the dialog to start a Preview of a selected Task, the whole project or a selected Page (see section 1.4.2).
New page from template no Create a new page based on an existing page template (see section 6.8.7).
Import page no Import an exported page to the current CBA ItemBuilder Project File (see section 6.8.7).
Import external content no (Function not supported for current use.)
Import XLIFF no Import XLIFF file from external translation (see section 6.9).
Verify text translation no Verify imported XLIFF translation (see section 6.9).
Finalize translation no Finalize external translation (see section 6.9).
Edit all text blocks no Edit all defined text blocks for TextFields used in the current CBA ItemBuilder Project File (see section 5.3.8).
Edit all text fields no Edit al text fields used in the current CBA ItemBuilder Project File (see section 1.7.2).
Edit all user defined IDs no Dialog to edit all UserDefinedIds in the current CBA ItemBuiler Project File (see section 3.7.4).
Update rich text displays no Update the images of all TextFields used in the Page Editor.
[Issue 40]

Browse resources | yes | Opens the Resource Browser used to import and manage media files resources (see section 3.10.1). Browse Task and Item Score | yes | Opens the Task Editor used to define Tasks and Scoring for the current CBA ItemBuilder Projecct File (see section 3.6). Browse Value Maps | yes | Opens the editor for Value Maps in the current CBA ItemBuilder Project File (see section 4.2.4). Edit State Machine | yes | Opens the State Machine Tree View and the State Machine Syntax for the current CBA ItemBuilder Project File (see section 4.4.1). Edit State Chart | yes | (Function not supported for current use.)

TABLE B.5: Overview of the Template menu
Templates > Toolbar Description
Browse templates no Opens the Template Browser of the CBA ItemBuilder that allows to show, import, delete and export pages saved in the CBA ItemBuilder Instance as Templates (see section 6.8.7).
TABLE B.6: Overview of the Utilities menu
Utilities > Toolbar Description
Xliff Editor yes (Currently not maintained, see section 6.9)
Open preferencs no Open the CBA ItemBuilder preferences dialog (see section 6.9 for CBA Item Builder XLIFF settings, section 6.8.2 for CBA Item Fonts, section 3.6.2 for CBA Presentation Size, section 1.4.2 for CBA Preview and section 3.1.4 for CBA Ruler And Grid settings).
TABLE B.7: Overview of the Help menu
Help > Toolbar Description
Help Contents no Shows the Quick Reference embedded in the CBA ItemBuilder.
Help Online no Shows online help.
About no About dialog showing the version of the CBA ItemBuilder (see section 1.3).
Update Software no Not implemented. See section 1.2 for information about new versions and upates.
[Issue 41]

B.2 Operators

The power of CBA ItemBuilder`s Conditional Links (see section 4.3) and Finite-State Machines (see section 4.4) is achieved by the fact that actions can be executed when Conditional Links are activated or transition between states are triggered by active Rules. Moreover, scoring of Tasks can incorporate component states and additional information provided by the CBA ItemBuilder at runtime (see section 5.3.2).

For many purposes, so-called Operators are available (see section 4.4.6), which are listed in a table in this part of the appendix:

  • Table B.8 lists operators for State Machines
  • Table B.9 lists operators for Component States
  • Table B.10 list operators for Trees
  • Table B.11 lists operators for Evaluations
  • Table B.12 lists finite-state machine operators for Task Management
  • Table B.13 lists finite-state machine operators for Calculation Engine
  • Table B.14 lists Logical Expressions
  • Table B.15 lists operators for Comparisons
  • Table B.16 lists Arithmetic operators
  • Table B.17 lists Miscellaneous operators

In addition to the operator and a description, each table also indicates whether the operator has a return value. If this is the case, an operator can also be used in a condition (see section 4.4.5 for conditions in FSM Rules, section 4.3 for conditions in Conditional Links, and section 5.3.2 for Scoring Conditions).

Tables in this appendix last verified and updated for version 9.1.
TABLE B.8: Operators for State Machine Variabless
Operator Description
initFSM(Events) Execute state machine events.
raise(Event) Raise the given Event after the current event has been processed completely. Multiple operator calls in one rule raise the events in the order of the operator calls.
reset(Variable, Variable, ...) Set the values of the given Variables to 0.
set(Variable, Value) Set the given Variable to the given Value.
setFSMEvent (Event, Timeout) Set the triggering interval for the given timer Event to the given Timeout (in milliseconds).
setFSMState (State, Page) Set the page attribute for the given State in the state machine to the given Page.
is_last_state (State, State, ...) Return true if the last state the state machine was in is one of the given States.
raised_all_events (Event, Event, ...) Return true if all given Events have been raised during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.
raised_events() Return the number of events that have been raised during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.
raised_all_events_in_state (State, Event, Event, ...) Return true if all given Events have been raised in the given State during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.
raised_nb_events (Event, Event, ...) Return the number of events among the given Events that have been raised during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator
raised_nb_events_in_state (State, Event, Event, ...) Return the number of events among the given Events that have been raised in the given State during the execution of the current task. We consider an event raised even if it did not trigger a transition. We also include events raised by the raise() operator.
variable_in (Variable, Value, Value, ...) Return true if the value of the given Variable equals one of the given Values.
visited_all_states (State, State, ...) Return true if all given States have been visited during the execution of the current task.
visited_all_values_of_variable(Variable, Value, Value, ...) Return true if the value of the given Variable has covered all given values during the execution of the current task. Only initial values and values before and after an event has been processed are considered. Intermediate value changes due to modifications by the user (e.g. through a SpinnerValueInput) or during event processing are left out. 0 is used as variable value at the start of the FSM unless the variable has been initialized explicitly to a different value when processing the initial transition from the start state.
visited_nb_states (State, State, ...) Return the number of the given States that have been visited during the execution of the current task.
visited_nb_values_of_variable(Variable, Value, Value, ...) Return the number of given Values that the given Variable has covered during the execution of the current task. Only initial values and values before and after an event has been processed are considered. Intermediate value changes due to modifications by the user (e.g. through a SpinnerValueInput) or during event processing are left out. 0 is used as variable value at the start of the FSM unless the variable has been initialized explicitly to a different value when processing the initial transition from the start state.
TABLE B.9: Operators for Component States
Operator Description
setActive(Component), unsetActive(Component) Set the Component ‘active’ or ‘inactive’. This switches between the two ‘toggling’ states of the Component like checked/unchecked for a CheckBox or a RadioButton, pushed/released for a Button in toggling mode or selects an item in a list like the ComboBoxItem in a ComboBox.
setFrozen(Component), unsetFrozen(Component) Set the ‘Is Frozen’ attribute of the given Component.
setHidden(Component), unsetHidden(Component) Set the ‘Is Hidden’ attribute of the given Component.
setHighlightable(RichText), unsetHighlightable(RichText) Set the ‘Highlightable’ attribute of the given RichText component.
setMultiselect(Container), unsetMultiselect(Container) Switch the selection mode of the given select group Container between mulit-select and single-select.
setSelectable(Component), unsetSelectable(Component) Set the ‘Selectable’ attribute for the given Component.
setEmbeddedPage(PageArea, Page) Set the given Page as embedded page for the given PageArea.
focus(Component) Set the focus to a component. Note that the object should be on the current page, otherwise the focus operation might have no effect. If the object is not visible on the page it is scrolled to the object to make it visible.
initMediaPlayer(Component, Property, Property, ...) Initialize the given media player Component. The following Properties will be set (if not explicitly given the default values are used):
  - automaticStart (default false): Starts the media player automatically when its parent page is displayed, stops when the page is left.
  - hideControls (default false): Hide all controls.
  - maxPlay (default 0, means unlimited): Number of times the media player resource can be played. Note that a resource is counted as ‘played’, if it reaches the end, or if it is stopped explicitly (i.e. not when leaving the page). A sequence of pause and start operations does not count.
setMediaPlayer(Component, Operation) Control the given media player Component. The following Operations are available:
  - mp_start: starts the media player execution at the beginning or continues when paused.
  - mp_stop: stops the media player execution and rewinds to the beginning.
  - mp_pause: pauses the media player execution (without rewinding).
setMediaPlayerVolume(Component, Volume) Control the volume of the given media player Component. The Volume ranges from 0 (mute) to 10 (maximum volume).
setValueDisplayMode(Component, Mode) Set the drag&drop mode of the given Component. The following Modes are available:
  - dd_none: the component does not allow dragging or dropping.
  - dd_drag: the component only allows dragging.
  - dd_drop: the component only allows dropping.
  - dd_dragdrop: the component allows both dragging and dropping.
setInputValue(InputSource, InputTarget, NewSourceValue) Set the text value of the InputTarget component to the current value of the InputSource component and initialize InputSource with the value of the NewSourceValue if a NewSourceValue is given. Notes:
  - InputSource and Input Target can be identical, in that case only the NewSourceValue is relevant.
  - If values from (multi-line) InputFields are assigned to SingleLineInputFields or SearchFields, then only the first line of the InputField (up the the ‘first end of line’ character) is taken into account.
  - In a NewSourceValue String any ‘end of line’ character is represented as \n (e.g. line1\nline2\nline3).
  - The operator may overwrite SingleLineInputFields or InputFields, even if they are ‘read-only’.
TABLE B.10: Operators for Trees
Operator Description
current_node(Tree, RegularExpression) Return true if the node ID of the current node in the given Tree matches the given RegularExpression.
exists_nodes(Tree, RegularExpression, RegularExpression, ...) Return the number of nodes in the given Tree whose node ID matches at least one of the given RegularExpressions. Each node counts once only.
visited_nodes(Tree, RegularExpression, RegularExpression, ...) Return the number of visited nodes in the given Tree whose node ID matches at least one of the given RegularExpressions. Each node counts once only.
visited_nodes(Tree, NodeIdPattern, ColumnPattern, ColumnPattern, ...) Return the number of nodes in the given Tree whose node ID matches the NodeIdPattern and whose column values match the specified ColumnPatterns: The first ColumnPattern corresponds to the node name, the second ColumnPattern to the first additional colum, etc. Each node counts once only.
tree_move(Tree, Node) Move the currently selected node in the given Tree into the given Node. The operator ignores the ‘read-only’ flag of the Tree.
tree_copy(Tree, Node) Copy the currently selected node in the given Tree into the given Node. The operator ignores the ‘read-only’ flag of the Tree.
TABLE B.11: Operators for Evaluations
Operator Description
matches(Component, RegularExpression), matches(Component, RegularExpression, Selector) Return true if the text content of the Component matches the RegularExpression. For spreadsheet table cells containing a formula the formula result counts as text content. The Selector options are:
  - formula: The formula text of a spreadsheet table cell counts as text content (instead of the formula value).
user_interactions() Return the number of user interactions within the current task execution.
getItemScore(Task, Calculation) Trigger all scoring calculations for the requested Task and return the requested calculation result. Valid Calculation values are:
  - result: overall result (‘1’ if there are no misses and the minium required number of hits hab been reached, otherwise ‘0’
  - nb_hits: number of hits
  - hit_weight: total weight of hits
  - nb_misses: number of misses
  - miss_weight: total weight of misses
  - credit_class: name of the class with the highest class weight
  - credit_weight: weight of the class with the highest class weight
  - nbInteractions: number of user interactions since start of the current task execution
  - nbInteractionsTotal: accumulated number of user interactions in previous executions of the task
  - reactionTime: time (in milliseconds) between the start of this task execution and the first user interaction
  - reactionTimeTotal: accumulated time (in milliseconds) between the start of the task execution and the first user interactions in previous executions of the task
  - execTime: time in (milliseconds) since the start of this task execution
  - execTimeTotal: accumulated time (in milliseconds) in previous executions of the task
highlighted(RichText, RichText, ...) Return true if in at least one of the given TextFields all non-blank characters are highlighted. Empty lines correspond to a blank character.
complete(Selection, Selection, ...) Return true if all Selections are selected or completely highlighted. A text block is completely selected if all non-blank characters of the text block are highlighted. Empty lines correspond to a blank character. A Link counts as selected it it was visited already.
partial(Selection, Selection, ...) Return true if at least one of the given Selections is selected or partly highlighted. A text block is partly selected if at least one non-blank character of the text block is highlighted. Empty lines correspond to a blank character. A Link counts as selected it it was visited already.
current_page(Page), current_page(Page, PageArea) Return true if the given Page is currently displayed:
  - One parameter variant: Is the page displayed at the top level?
  - Two parameter variant: Is the page displayed in the given PageArea?
bookmarked(Page) Return true if the given Page is currently bookmarked.
integer_value(Component, RoundingMode, Default) Evaluate the text content (or formula value for spreadsheet table cells containing a forumula) of the given Component as integer:
  - If the text content is empty or does not represent a number, return the Default value.
  - If the text content represents a number and RoundingMode is ‘up’, then round up always: 1.0 => 1; 1.1 => 2; -1.0 => -1; -1.1 => -2
  - If the text content represents a number and RoundingMode is ‘down’, then round down always: 1.9 => 1; 2.0 => 2, -1.9 => -1; -2.0 => -2
  - If the text content represents a number and RoundingMode is ‘half_up’, then round up at x.5: 1.4 => 1; 1.5 => 2, -1.4 => -1; -1.5 => -2
  - If the text content represents a number and RoundingMode is ‘half_down’, then round down at x.5: 1.5 => 1; 1.6 => 2, -1.5 => -1; -1.6 => -2
panel_distance_range (Container, MinDistance, MaxDistance, Center, Component, Component, ...) Return true if
  - the mutual distance of all given Components in the given Container is within the given range MinDistance..MaxDistance and
  - for all other components in the given Container the distance is outside the given range for at least one of the given Components.
  The distance is calculated between
  - the centers of the Components if the Center flag it true
  - the upper left corners of the Components if the Center flag is false.
panel_position_range (Container, XStart, XEnd, YStart, YEnd, Center, Component, Component, ...) Return true if
  - the (X,Y) positions of all given Components in the given Container are within the range given by XStart, XEnd, YStart and YEnd relative to the Container’s (X,Y) position and
  - the (X,Y) positions of all other components in the given Container are outside the given range.
  As (X,Y) position of a Component and the Container counts
  - the center of the component if the Center flag it true
  - the upper left corner of the component if the Center flag is false.
result_text(TextSource), result_text (TemplateSource, ValueSource, ValueSource, ...) The operator always returns true. The single parameter version copies the text from the TextSource to the result text of the Hit/Miss condition. The multiple parameter version uses the text from the TemplateSource as template and replaces each occurrence of %<index>$s (where <index> is an integer between 1 and the total number of given ValueSources) by the text snippet obtained from the ValueSource corresponding to the given index. Example: result_text("Sorted text: %1$s %3$s %2%s", "one", "two", "three") writes Sorted text: one three two
trace_snapshot (TextSource), trace_snapshot (TemplateSource, ValueSource, ValueSource, ...) The operator always returns true. The single parameter version traces the text from the TextSource in the trace log and dumps a snapshot of the current task to trace log. The multiple parameter version uses the text from the TemplateSource as template and replaces each occurrence of %<index>$s (where <index> is an integer between 1 and the total number of given ValueSources) by the text snippet obtained from the ValueSource corresponding to the given index. Example: trace_snapshot("Sorted text: %1$s %3$s %2%s", "one", "two", "three") writes Sorted text: one three two
trace_text(TextSource), trace_text (TemplateSource, ValueSource, ValueSource, ...) The operator always returns true. The single parameter version traces the text from the TextSource in the trace log. The multiple parameter version uses the text from the TemplateSource as template and replaces each occurrence of %<index>$s (where <index> is an integer between 1 and the total number of given ValueSources) by the text snippet obtained from the ValueSource corresponding to the given index. Example: trace_text("Sorted text: %1$s %3$s %2%s", "one", "two", "three") writes Sorted text: one three two

The operator matches() is important for scoring string responses (see section 5.3.4), while the result_text() can be used to copy responses to result variables (see section 5.3.10). The operators trace_text() and trace_snapshot() are important for adding user-defined log events to the trace log (see section 4.4.6).

TABLE B.12: Finite-state machine operators for Task Management
Operator Description
isCurrentTask(Task) Return true if Task is currently executing.
next_task(Task, Test) Switch to the next task. Both parameters are optional, but Task is mandatory if Test is specified.
  - If no parameter is given, switch to the next task. If there is no next task do nothing. (The execution environment selects the ‘next’ task.)
  - If a Task is given, go to this task (in the specified Test if a Test is given). If no such task exists do nothing.
  If the task switch targets to a task that was interrupted before, the execution environment decides whether to initiate a new task instance now or to resume the task interrupted earlier.
back_task() Switch back to the previous task. If there is no previous task do nothing. (The execution environment selects the ‘next’ task.) If the task switch targets to a task that was interrupted before, the execution environment decides whether to initiate a new task instance now or to resume the task interrupted earlier.
cancel_task() Terminate the current task without switching to another task.

Note about execution sequence when used in a state machine transition rule: The system postpones task switches until all other operators in a transition are executed. For multiple task switch operators in a single transition it will only execute the last task switch encountered during the transition. For a transition that leads to a state with a page assigned, the system switches to this page after all actions assigned to the transition are executed. If a task switch appears in the action list of the transition, the page switch is done in the old task since the task switch is postponed as described above.

Table: (#tab:fsm-operators-calculator) Finite-state machine operators for Calculation Engine

TABLE B.14: Logical expressions in the domain specific language (DSL)
Operator Description
calcGetMem(MemIdx) Return the rounded integer value of the calculator memory identified by MemoryIndex. Return 0 if the memory is not initialized or not set.
calcOp(Operation, IntegerParam) Performs an operation on the stack of the calculator. The following operations are available:
  - clear: Clears the last operand on top of the stack (if any).
  - clearall: Clears the full stack.
  - equals: computes the result by executing all operations on the operands on the stack.
  - add: pushes the add operation to the stack.
  - subtract: pushes the subtract operation to the stack.
  - multiply: pushes the multiply operation to the stack.
  - divide: pushes the divide operation to the stack.
  - fact: calculates the factorial of the current operand and replaces the current operand by the result.
  - power: calculates the power of the current operand based on the exponent ‘exp’ given as IntegerParam and replaces the current operand on the stack by the result: xexp
  - npower: pushes the power function on the stack (and expects a n-th power integer operand): xy
  - root: calculates the power of the current operand based on the inverse exponent given as IntegerParam and replaces the current operand on the stack by the result: x1/exp
  - nroot: pushes the root function on the stack (and expects a n-th root integer operand): x1/y
  - sin: calculates the sine function of the current operand and replaces the current operand on the stack by the result.
  - cos: calculates the cosine function of the current operand and replaces the current operand on the stack by the result.
  - tan: calculates the tangent function of the current operand and replaces the current operand on the stack by the result.
  - cot: calculates the cotangent function of the current operand and replaces the current operand on the stack by the result.
  - sec: calculates the secant function of the current operand and replaces the current operand on the stack by the result.
  - csc: calculates the cosecant function of the current operand and replaces the current operand on the stack by the result.
  - e: calculates the natural exponentiation (base ‘e’) of the current operand on the stack and replaces it by the result: ex
  - exp: calculates the exponentiation of the current operand on the stack with the base given as IntegerParam and replaces it by the result: basex
  - ln: calculates the natural logarithm (base ‘e’) of the current operand on the stack and replaces it by the result: ln
  - log: calculates the logarithm of the current operand on the stack with the base given as IntegerParam and replaces it by the result: logbase
  - invmult: calculates the inverse of the current operand, i.e. divides 1 by the current operand: 1/x
  - invpower: pushes the inverse power function, i.e. n-th function on the stack (and expects a n-th power integer operand > 0): logyx
  - leftbr: pushes a left (opening) bracket on the stack as a marker for intermediate calculation.
  - rightbr: pushes a right (closing) bracket on the stack and calculates the result of the expression between the corresponding left bracket and replaces it by pushing the result on the stack.
  - msave: saves the current operand on top of the stack into the memory referred to by the memory index given as IntegerParam.
  - mread: reads the memory value referred to by the memory index given as IntegerParam and pushes it on top of the stack (or replaces the current operand).
  - mclear: clears the memory referred to by the memory index given as IntegerParam (i.e. sets it to 0).
  - madd: adds the current operand on top of the stack to the referred memory value and saves the result in the referred memory.
  - msubtract: subtracts the current operand on top of the stack from the referred memory value and saves the result in the referred memory.
calcOpnd(Operation, Digits) Modifies the current operand on the stack of the calculator. The following Operations are available (the parameter Digits – a non negative integer – may be optional):
  - add: adds Digits at the end of the current operand.
  - decimal: sets the decimal place and adds Digits at the end of the current operand (if specified).
  - back: removes the last digit (or decimal place) from the current operand (if any).
  - invadd: multiplies the current operand by -1 (additive inverse). Note that more digits can be added to the current operator afterwards.
calcSettings (Parameter, Parameter, ...) Initializes the calculator and sets Parameters. This must be done at the beginning, before any calculation is started, otherwise it has no effect. The following Parameters are available:
  - angle: the unit representation of angles: degree (default) or radian.
  - displayWidth: the number of digits (> 0) which can be used for external representation (default 10).
  - includeOperandInHistory: displays current operand in history, if set to true (default true).
  - withThousandSeparator: thousands separators are not displayed, if set to false (default true).
  - scale: the number of digits (> 0) after the decimal place, corresponds to the precision used for internal calculations, rounded half away from zero when required (default 0).
Operator Description
<opnd1> and <opnd2> Binary operator for logical ‘and’, i.e. returns true if both operands evaluate to true.
<opnd1> or <opnd2> Binary operator for logical ‘or’, i.e. returns true if at least one operand evaluates to true.
not <opnd> Unary operator for logical ‘not’, i.e. returns true if the operand evaluates to false.
ifthenelse (Condition, Then, Else) Return the value of Then if Condition evaluates to true, otherwise return the value of Else.

Important: The combination of logical operators requires bracketing (see section 4.1.3).

TABLE B.15: Comparisons in the domain specific language (DSL)
Operator Description
<opnd1> == <opnd2> Compares two text or numerical values. If both operands evaluate to an integer, a numerical comparison is done. If both operands evaluate to a text, a text comparison is done. Otherwise the operator returns false.
<opnd1> <> <opnd2> Compares two text or numerical values. If both operands evaluate to an integer, a numerical comparison is done. If both operands evaluate to a text, a text comparison is done. Otherwise the operator returns false.
<opnd1> < <opnd2> Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.
<opnd1> <= <opnd2> Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.
<opnd1> > <opnd2> Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.
<opnd1> >= <opnd2> Compares numerical values. If both operands evaluate to an integer (or a text that represents a numerical value), a numerical comparison is done. Otherwise the operator returns false.
TABLE B.16: Arithmetics in the domain specific language (DSL)
Operator Description
<opnd1> + <opnd2> Arithmetic add operation.
<opnd1> - <opnd2> Arithmetic subtract operation.
<opnd1> * <opnd2> Arithmetic multiply operation.
<opnd1> / <opnd2> Arithmetic divide operation.
<opnd1> % <opnd2> Arithmetic remainder operation: Calculate the remainder when dividing the first operand by the second.
TABLE B.17: Miscellaneous operators in the domain specific language (DSL)
Operator Description
openDialog(Page, X, Y) Open the given Page as dialog at the position (X,Y).
setGlobalProperty (Property, Value) Set the given global Property to the given Value. The following properties can be used:
  - highlight_color: Modifies the current higlighting color to Value. The Value is interpreted as RGB color integer value specified as plain positive or negative integer or as hexadecimal value (prepended with 0x). Invalid values are ignored silently.
recommend(Parameter, Parameter, ...) Highlight recommended Links, Tasks and Tests. Each parameter specifies a test name, a task name and the User Defined Id Path of a Link component separated by dots: <TestName>.<TaskName>.<UserDefinedIdPath> Example: recommend(myTest.someTask.myLink, myTest.anotherTask.someLink) To recommend a task without a specific Link component use an asterisk (*) as value for the User Defined Id Path like this: myTest.someTask.* To recommend a test without a specific task use asterisks for task and User Defined Id Path like this: myTest.*.* For User Defined Ids that are not defined in the current item, the ItemBuilder assumes that their components are part of an XPage.

B.3 Regular Expression Symbols

TABLE B.18: Regular Expression Symbols
Symbols Description of Regular Expression
. Matches any character except line breaks. Equivalent to [^\n\r].
^ Beginning. Matches the beginning of a string3 or of a line.
$ End. Matches the end of the string or of the line.
() Capturing group. Grouping multiple expressions.
{} Quantifier. Defines the number of times that the character in front of the opening bracket occurs
{x,y} x = minimum, y = maximum number of repetitions.
[] Character set. Matches any character in the set.
[^] Negated set. Match any character that is not in the set.
\| Alternation. Matches the expression before or after the \|.
? Optional. Match between 0 and 1 of the preceding token.
+ Match 1 or more of the preceding token.
* Match 0 or more of the preceding token.
.* Set the preliminary or later string part free.
\\ Matches the character after the \\.
?: Non-capturing Group. Groups multiple tokens together without creating a capture group.
\\\\ Matches a backslash.
[\\s\\S] Match any character.
[a-z] Range. Matches a character in the range a to z.
[A-Z 0-9] Matches only upper case letters, blanks and digits.
[a-zA-Z]? Matches single characters (only one character or empty string).
[^a-z] Matches all characters except lower case letters.
[0-9] Matches any character in the range 0 to 9.
\\d Digit. Matches any digit character, equals [0-9].
\\D Not digit. Matches any character that is not a digit character, equals [^0-9].
\\s Whitespace. Matches any whitespace character (spaces, tabs, line breakes).
\\S Not whitespace. Matches any character that is not a whitespace character.
\\w Word. Matches any word character (alphanumeric), equals [a-zA-Z 0-9].
\\W Not word. Matches any character that is not a word character (alphanumeric), equals [^a-zA-Z0-9].
\\n Line break.

B.4 Technical Configuration

By default, the configuration of the CBA ItemBuilder provided in the cba-itembuilder.ini activates the following features:

  • State-Machine Degubber (-DAllowFSMDebugging=true)
  • Trace Debugger (-DAllowTraceDebugging=true)
  • Scoring Viewer (-DAllowScoreDebugging=true)
Parameter Description
-DAllowFSMDebugging=true Allows opening the Finite-State Machine (FSM) Viewer in the preview (using Ctrl+M) for debugging the FSM state. Only intended for item development.
-DAllowTraceDebugging=true Allows opening the Trace Event Viewer in the preview (using Ctrl+T) for testing and debugging the logging. Only intended for item development.
-DAllowScoreDebugging=true Allows opening the Scoring Viewer in the preview (using Ctrl+S) for debugging the implemented scoring. Only intended for item development.

Additional features can be de-activated by modifying the cba-itembuilder.ini file:

Parameter Description
-Dfile.encoding=UTF-8 Support for non-Western European languages.
-DsimpleTextEditorWrap=yes Automatic word wrap in the Simple Text Editor (for SimpleTextFields and InputFields).
-DTraceHighlightedText=true Traces the highlighted texts (start, end position and text).
-DTraceVerbose=true Shows Trace Events on console and log files.
-DalwaysGenerateAtSave=yes Forces automatic generation of the project before saving (should be set to yes).
-DdefaultItemHeight=NNN Default CBA Item height in pixel (NNN), 715 pixel if none is defined.
[Issue 7]

-DdefaultItemWidth=NNN | Default CBA Item width in pixel (NNN). 722 pixel if none is defined. -DDefinedOrdering=false | Does not apply the defined ordering for overlapping graphical components. Only used for backward compatibility for the old style undefined ordering (applied before rel. 3.4.0). -DisTreeViewShowsAll=no | Shows all components in the Component View (to be used only for debugging purposes). -Donline.help.update.site= | Default path where the bundle to update the CBA Item Builder help feature is located. -DPreloadImages=true | Preloads images of all image/IconValueDisplays at startup of an item, so that value changes are displayed without delay at runtime (default= false). -DPreloadTextFields | TextFields are pre-loaded when the item is initialized the first time. The preloaded TextFields will render much faster at first display time. This is only supported for the browsers Firefox and Internet Explorer due to technical limitations in other browsers (for example Chrome). -Djava.util.Arrays.useLegacyMergeSort=true | Required MergeSort algorithm. -Declipse.consoleLog=true | TODO -Djetty.port=7070 | Port used by the internal servlet engine Jetty for previewing items. -Donline.help.update.site= | TODO -Dosgi.Framework.extensions=org.eclipse.equinox.weaving.hook | TODO -Dsun.rmi.dgc.client.gcInterval=3600000 | TODO -D defaultItemHeigh= | Default presentation size (height) -D defaultItemWidth= | Default presentation size (width)

B.5 CBA ItemBuilder Versions

TABLE B.19: CBA ItemBuilder Versions (with React-based runtime)
Version Date Links
10.0 2023-11-06 Runtime, JSON Schema, EE4Basic, Reference
9.9 2023-03-23 Runtime, JSON Schema, EE4Basic, Reference
9.8 2022-09-22 Runtime, JSON Schema
9.7 2022-04-20 Runtime, JSON Schema
9.6 2021-12-16 Runtime, JSON Schema
9.5 2021-08-19 Runtime, JSON Schema
9.4 2021-05-28 Runtime, JSON Schema
9.3 2021-04-08 Runtime, JSON Schema
9.2 2020-12-18 Runtime, JSON Schema
9.1 2020-10-01 Runtime, JSON Schema
9.0 2020-06-17 Runtime, JSON Schema
Previous versions not listed here

B.6 Component Register

The following Table B.20 contains references for all components of the CBA ItemBuilder, indicating where in this manual the components are described (column Reference), which page type is required to use the component (column Page) and which containers allow using the component (column Container).

TABLE B.20: Register of all Components
Component Page Container Reference
Audio Simple Panel 3.10.3
BackButton Web Browser WebBrowserToolbar 3.13.2
Bookmkark Web Browser WebBrowserToolbar 3.13.2
Button Simple, Web Browser Panel, WebBrowserToolbar, ImageMap 3.11.2
ChildArea Tabfolder, Taskbar TabfolderFrame, TaskbarFrame 3.13.1
Checkbox Simple Panel 3.9.3
ComboBox Simple Panel 3.9.5
ExternalPageFrame Simple Panel 3.14.1
ForwaredButton Web Browser WebBrowserToolbar 3.13.2
Frame Simple Page 3.5.1
HomeButton Web Browser WebBrowserToolbar 3.13.2
HTMLTextField Simple, Web Browser Panel, WebBrowserToolbar, ImageMap 3.8.2
InputField Simple Panel 3.9.1
ImageArea Simple ImageMap 3.10.2
ImageField Simple, Web Browser Panel, WebBrowserToolbar 3.10.2
ImageMap Simple Panel 3.9.10
ImageTextField Simple ImageMap 3.9.10
Line Horizontal Simple, Web Browser Panel, WebBrowserToolbar 3.7.5
Line Vertical Simple, Web Browser Panel, WebBrowserToolbar 3.7.5
Link Simple Panel 3.11.1
List Simple Panel 3.9.5
MapBasedVariableDisplay Simple Panel 4.2.5
MenuBar Simple, Web Browser Panel, WebBrowserToolbar 3.9.7
Menue Simple, Web Browser MenuBar 3.9.7
RadioButton Simple RadioButtonGroup 3.9.2
RadioButtonGroup Simple Panel 3.9.2
Rectangle Simple Panel 3.7.5
SimpleTextField Simple Panel 3.8.1
SingleLineInputField Simple, Web Browser Panel, WebBrowserToolbar 3.9.1
TabButton Tabfolder TabfolderGroup 3.13.1
TabfolderFrame Tabfolder Page 3.13.1
TabfolderGroup Tabfolder TabfolderFrame 3.13.1
Table Simple Panel 3.9.8
TableCellEditor Simple Panel 3.9.8
TaskbarButton Taskbar TaskbarGroup 3.13.1
TaskbarFrame Taskbar Page 3.13.1
TaskbarGroup Taskbar TaskbarFrame 3.13.1
TaskbarStartButton Taskbar TaskbarGroup 3.13.1
TextField Simple, Web Browser Panel, WebBrowserToolbar 3.8.3
Tree Simple Panel 3.9.9
TreeView Simple Panel 3.9.9
TreeChildArea Simple Panel 3.9.9
Timer Simple Panel 4.4.10
PageArea Simple Frame 3.5.4
Panel Simple Frame, Panel 3.5.2
Rectangle Simple, Web Browser Panel, WebBrowserToolbar 3.7.5
ScaleValueInput Simple Panel 4.2.2
SpinnerValueInput Simple Panel 4.2.2
ValueInput Simple Panel 4.2.2
VariableValueDisplay Simple Panel 4.2.5
Video Simple Panel 3.10.3
VideoTextArea Simple Video 3.10.3
WebBrowserFrame Web Browser Page 3.13.2
WebBrowserToolbar Web Browser WebBrowserFrame, WebBrowserToolbar 3.13.2
WebChildArea Web Browser WebBrowserFrame 3.13.2
WebChildFrame Web Child Page 3.13.2

B.7 Documenetation Log Events

During the delivery of assessment components created with the CBA ItemBuilder, log events are generated, which can be collected and stored by the software used for test deployment. The log events are delivered using the TaskPlayer API (see section 7.7) as JSON objects. The deployment software is responsible for storing and probably transforming the format of the data provided in log events. Raw Log Events are generated by default (see section 2.8.1). The documentation of the different Raw Log Events provided by CBA ItemBuilder is done separately for events of different components-categories:

  • Raw Log Events for basic components (table B.21): Click events for buttons and links, page change and scroll events
  • Raw Log Events for components that support selection (table B.22): Log events that occur when components in the test are clicked or selected
  • Raw Log Events for answer-changes (table B.23): Log events, which can indicate the change of a response
  • Raw Log Events for text entry components (table B.24): Log events for selection and modification of components for text entry
  • Raw Log Events for value inputs (table B.25): Log events for value input components
  • Raw Log Events for audio an video components (table B.26): Log events for player components used to embed media
  • Raw Log Events for tree components (table B.27): Log events for the CBA ItemBuilder tree component
  • Raw Log Events for advanced components (table B.28): Log events for advanced components
  • Raw Log Events for text highlighting (table B.29): Log events for the text highlighting in TextFields
  • Raw Log Events for test deployment (table B.30): Log events for the test deployment. Note that the deployment software can provide additional events.

As described in section 2.8.4 log data can be stored in different formats, such as the Universal Log Format, Flat and Sparse Log Data Tables or as eXtensible Event Stream (XES). All formats use the The event name is either contained as a column (flat and sparse log data table) or corresponds to the table in which the log data of this event type is stored (universal log format).

The different tables list the events with different names (event type), give a short description, and name the central event-specific data transmitted by the events. Optional attributes are specially marked. Beyond the documented attributes, log events often provide the following additional attributes:

  • indexPath: The index path of the component instance.
  • userDefIdPath: The user defined ID path of the component instance.
  • clientX/clientY/pageX/pageY/screenX/screenY: The position of the element in different metrics.

These attributes’ values reproduce properties of the affected components and can be used to map the affected parts of the instrument (beyond the UserDefinedID).102

FIGURE B.1: Example item illustrating Raw Log-Events (html|ib).

TABLE B.21: Log events for basic elements
Event Name Description Event-Specific Data
Button Button is pressed. UserDefId of the button, oldSelected (was the button selected before), subtype\(^1\) (type of the button)
Link Link is hit. UserDefId of the Link, oldSelected (was the Link selected before)
ValueDisplay Value display is selected. UserDefId of ValueDisplay, displayType (type of the display, either number, text, image icon, audio or video)
EmbeddedLink Embedded link is selected. indexPath (Index path of the embedded link), no UserDefId
ScrollbarMove Scrollbar slider moved. userDefId of the component, orientation (either horizontal or vertical), direction (either down, up, left, or right), horizontalScroll (position of the horizontal slider at the end of the move in percent of total size, 0% is at the left end, 100% is at the right end), verticalScroll (position of the vertical slider at the end of the move in percent of total size, 0% is at the top, 100% is at the bottom)
PageSwitchTopLevel A page switch in a top level page area occurs. pageAreaType (type of the page area, either main, dialog or modal), pageAreaName (name of the page area), newPageName (name of the page displayed in the page area), position\(^1\) (X/Y)
PageSwitchEmbedded A page switch in an embedding component instance occurs. userDefId of the component, newPageName (name of the new page embedded in the component instance), tab\(^1\) (name of the target tab in the embedding component instance), historyMove\(^1\) (history move operation that triggered the page switch, either home, back, or forward)

\(^1\) Optional event-specific data.

TABLE B.22: Log events for component selection
Event Name Description Event-Specific Data
SimpleTextField Simple text field is selected. UserDefId of the SimpleTextField
ImageField Image field is selected. UserDefId of the ImageField
ExternalPageFrame An external page frame is selected. UserDefId of the ExternalPageFrame
Panel Panel is selected. UserDefId of the Panel
Container Container is selected. UserDefId of the Container
RegionMap Region map is selected. UserDefId of RegionMap
PageArea Page area is selected. UserDefId of PageArea
TABLE B.23: Log events for answer-changes
Event Name Description Event-Specific Data
Checkbox Checkbox is pressed. UserDefId of the Checkbox, oldSelected (was the Checkbox selected before)
RadioButton RadioButton is pressed. UserDefId of the RadioButton, oldSelected (was the RadioButton selected before)
Combobox Combo box selected entry changes. The combox box will not trace an event if the user selects the currently selected item once more. UserDefId of the Combobox, oldSelected (index of the previously selected combo box item), oldSelectedUserDefId (user defined ID of the previously selected item), newSelected (index of the now selected combo box item), newSelectedUserDefId (user defined ID of the now selected item)
ImageArea Image area is selected. UserDefId of ImageArea, oldSelected (was the ImageArea selected before)
ImageTextField Image text field is selected. UserDefId of ImageTextField, oldSelected (was the ImageTextField selected before)
RichText Rich text field is selected. UserDefId of RichText, oldSelected (was the RichText selected before)

\(^1\) Optional event-specific data.

TABLE B.24: Log events for text entry components
Event Name Description Event-Specific Data
SingleLineInputField Single line input field is selected. UserDefId of SingleLineInputField, currentTextValue (text value of the input field)
SingleLineInputFieldModified Single line input field receives modification request. UserDefId of SingleLineInputFieldModified, oldTextValue (old text value of the input field), newTextValue (new text value of the input field), origin (origin of the modification request, either keyboard or cutAndPaste), validationPattern\(^1\) (validation pattern configured for the field), invalidTextValue\(^1\) (text value that was rejected by the pattern validation)
InputField Input field is selected. UserDefId of InputField, currentTextValue (text value of the input field)
InputFieldModified Input field receives modification request. UserDefId of InputFieldModified, oldTextValue (old text value of the input field), newTextValue (new text value of the input field), origin (origin of the modification request, either keyboard or cutAndPaste), validationPattern\(^1\) (validation pattern configured for the field), invalidTextValue\(^1\) (text value that was rejected by the pattern validation)
OperatorSetTextValue Operator sets text value of input element. UserDefId of component, oldTextValue (old text value of the input field), newTextValue (new text value of the input field)

\(^1\) Optional event-specific data.

TABLE B.25: Log events for value inputs
Event Name Description Event-Specific Data
ValueInput Variable value input field is selected. UserDefId of ValueInput
ValueInputModified Variable value Input field is modified. UserDefId of ValueInput, newValue (new value for the variable)
ScaleValueInput Scale value input field is selected. UserDefId of ScaleValueInput
SpinnerValueInput Spinner value input field is selected. UserDefId of SpinnerValueInput
TABLE B.26: Log events for audio/video components
Event Name Description Event-Specific Data
AudioPlayer Audio player receives click with hidden controls. UserDefId of AudioPlayer
AudioPlayerControl Audio player starts/pauses/ends playing. UserDefId of AudioPlayerControl, operation (either play, pause, stop, or ended), maxPlay (maximum number of plays allowed), currentPlayNo (number of the current play), automaticStart (true if automatic start), hideControls (true if controls are hidden), volumeLevel (current volume level in percent), isStatemachineTriggered (true if triggered by FSM)
VideoPlayer Video player receives click with hidden controls. UserDefId of VideoPlayer
VideoPlayerControl Video player starts/pauses/ends playing. UserDefId of AudioPlayerControl, operation (either play, pause, stop, or ended), maxPlay (maximum number of plays allowed), currentPlayNo (number of the current play), automaticStart (true if automatic start), hideControls (true if controls are hidden), volumeLevel (current volume level in percent), isStatemachineTriggered (true if triggered by FSM)
TABLE B.27: Log events for tree components
Event Name Description Event-Specific Data
TreeNode Operation on node in tree. UserDefId of the tree, operation (type of operation, either emptySelection, selection, doubleClick, expandNode, collapseNode, new, delete, rename, cut, copy, paste, drag, or drop), nodePathId\(^1\) (node path id of selected node), nodeType\(^1\) (type of selected node), nodeName (name of selected node), oldValue\(^1\) (for operation=rename only: old column value), newValue\(^1\) (for operation=rename only: new column value), columnName\(^1\) (for operation=rename only: name of column changed by the operation), triggeredEvent\(^1\) (for operation=delete only: name of the FSM event triggered instead of executing the operation)
TreeViewNode Operation on node in tree view. UserDefId of the tree, operation (type of operation, either emptySelection, selection, doubleClick, expandNode, collapseNode, new, delete, rename, cut, copy, paste, drag, or drop), nodePathId\(^1\) (node path id of selected node), nodeType\(^1\) (type of selected node), nodeName (name of selected node), oldValue\(^1\) (for operation=rename only: old column value), newValue\(^1\) (for operation=rename only: new column value), columnName\(^1\) (for operation=rename only: name of column changed by the operation), triggeredEvent\(^1\) (for operation=delete only: name of the FSM event triggered instead of executing the operation)
TreeViewSort Sort by column operation in tree view. UserDefId of the tree, sortDirection (direction of the sorting applied to the rows, either ascending, descending, or none), columnName\(^1\) (name of the column to sort rows by), columnIndex\(^1\) (index of the column to sort rows by)
TreeChildArea Tree child area receives click UserDefId of the tree

\(^1\) Optional event-specific data.

TABLE B.28: Log events for advanced components
Event Name Description Event-Specific Data
TableCell Table cell is selected. UserDefId of the TableCell, tableUserDefId (userDefId of the table containing the cell), row (index of the row of the cell), column (index of the column of the cell), oldSelected (was the TableCell selected before)
TableCellModified Table cell is modified. UserDefId of the TableCell, tableUserDefId (userDefId of the table containing the cell), row (index of the row of the cell), column (index of the column of the cell), cellType (text combo or formula), oldValue (old value of the cell), newValue (new value of the cell), oldEvaluatedValue (evaluated value of the old formula), newEvaluatedValue (evaluated value of the new formula), errorInFormula (error value returned by the formula evaluation for the new formula)
BrowserTab Switch the current Browser tab. Event is raised by selecting the tab. UserDefId of the web child area component, tab (name of the selected tab), page (name of the page displayed in the selected tab)
DragAndDropReceive Drag & drop operation completed. senderUserDefId\(^1\) (user defined ID of the sending component), receiverUserDefId\(^1\) (user defined ID of the receiving component), startPosition (X/Y), endPosition (X/Y), sendingType, receivingType, operation
JavaScriptInjected Some external JavaScript code triggered this entry in the trace log. userDefId\(^1\) (as specified by the JavaScript code), origin (origin URL of the event triggered by the JavaScript code), message\(^1\) (as specified by the JavaScript code)
CutCopyPaste A cut/copy/paste command was triggered. contentUserDefId\(^1\) (ser defined ID of the component providing/receiving the clipboard content), triggerUserDefId\(^1\) (user defined ID of the triggering component), triggerType (type of the triggering action, either button, contextMenu, or keyboard), operation (operation triggered, either cut, copy, or paste), content\(^1\) (xchanged clipboard content, not given for denied requests), isPerformed\(^1\) (indicates whether the requested operation was performed or denied)
Bookmark A bookmark related command triggered. ownerUserDefId\(^1\) (user defined ID of the component owning the bookmarks), triggerUserDefId\(^1\) (user defined ID of the triggering component), triggerType (type of the triggering action, either button or contextMenu), operation (operation triggered, either add, drop, select, or manage), pageName\(^1\) (name of the target page of the bookmark), pageUrl\(^1\) (URL of the target page of the bookmark), tab\(^1\) (tab in the browser targeted by the bookmark, for tabbed browsers only)
OperatorTraceText Operator trace_text includes text in trace log. text (evaluated text from the operator arguments)
OperatorTraceSnapshot Operator trace_snapshot includes text in trace log. text (evaluated text from the operator arguments)

\(^1\) Optional event-specific data.

TABLE B.29: Log events for text highlighting
Event Name Description Event-Specific Data
RichTextHighlight Highlighted area in rich text field changes. UserDefId of the RichTextHighlight, oldSelections (list), newSelections (list)

Event-specific data provided in the list of oldSelections and newSelections have the following attributes:

  • startKey: The ID of the block (i.e. the row) where the area starts.
  • startOffset: The position in the block (i.e. in the row) where the area starts.
  • endKey: The ID of the block (i.e. the row) where the are ends.
  • endOffset: The position in the block (i.e. in the row) where the area ends.
TABLE B.30: Log events for test deployment
Event Name Description Event-Specific Data
TasksViewVisible The tasks view becomes visible. The view showing the task(s) becomes visible for the test user. Settings for running the task
UserLogin A test-taker logged in. User name, information about the browser used to display the test
ItemSwitch An item switch occurs. Configuration of the new item
TaskSwitch A task switch occurs. oldTask (name of the interrupted tas), oldItem (name of the item containing the interrupted task), oldTest (name of the test of the interrupted task), newTask (name of the installed task), newItem (name of the item containing the installed task), newTest (name of the test of the installed task), taskResult (results for the named evaluations for the interrupted task)
HeaderButton One of the header buttons provided by the viewer was pressed. index (index of the header buttons in the header buttons list)
NavigationButton One of the task/test navigation buttons provided by the viewer was pressed. navigationType (type of the navigation button, either test or task), navigationTarget (name of the test or task to navigate to)
RuntimeController The controlling environment triggered an action. actionType (triggered action), details (parameters specifying the details of the triggered action)
ApplicationFullScreen A fullscreen related command triggers. type (type of operation triggered, either enterFullscreen or exitFullscreen), alternateStateDuration (duration in seconds since the last visibility change)
ApplicationVisibility Application visibility changed. type (type of change, either pageHidden or pageShown), alternateStateDuration (duration in seconds since the last visibility change)
PauseResume Test run was paused or resumed after pause. type (type of action, either pause or resume)

\(^1\) Optional event-specific data.