Integrated Question Support
Starting with version 3.8, the Impression Content Creation Tool provides integrated question support for sequencer storyboard types and the Command storyboard. Integrated question support means that the storyboard is recognized as a question type, and all remediation-related fields supported by the current project properties (e.g. remediation range, custom messages, etc.) can be used. This provides a simplified content editing interface for content creators while allowing runtime developers to leverage the BCF to create question types not currently supported by Impression.
Although the Simulation storyboard type supports an evaluation mode (using the IsQuestion Boolean property), remediation for Simulation storyboards is handled differently than other storyboard types. As a result, Simulation storyboards do not provide integrated question support.
The type-specific editors for the sequencer storyboard types and the individual command field editor for the Command storyboard type now include a link labeled "question integration", which, when clicked, displays a dialog showing the integration options available for the storyboard type (for sequencers) or the command (for the Command storyboard type). These options are:
- Is NOT a question (default). The storyboard or command is not to be considered a question.
- Is a question. The storyboard or command is a question. All supported question-related fields on the General tab will be available.
- Can be a question. The storyboard or command will be considered a question if the defined IsQuestion property is True.
For the sequencer storyboard types, these options apply to all storyboards of the specified type. For the Command storyboard type, these options are applied on a command-by-command basis; allowing some commands to be marked as questions, while others are not. For brevity, this document will refer to "storyboards" in general even though the options for a Command storyboard may change based on the command type selected.
To simplify runtime detection of question storyboards, particularly Command storyboards, Impression uses the IsQuestion Boolean property, if available. If the common or command fields do NOT define an IsQuestion property, and:
- The project properties define the storyboard as is a question then the CCT will automatically add a Boolean property named IsQuestion with a value of true for the storyboard.
- The project properties define the storyboard as is NOT a question then the CCT will remove the IsQuestion property if it exists.
- The project properties define the storyboard as can be a question then the CCT will add an IsQuestion Boolean editor (checkbox) as the first item for the field editor.
If an IsQuestion field is defined, the CCT will use the existing field. If the storyboard is defined as can be a question, then the value of this field is examined to determine if the storyboard is a question or not.
Although the CCT will make its best guess as to the value of the IsQuestion property regardless of property type, best results will occur if the IsQuestion property is defined as a Boolean value in the field editor.
Most remediation fields supported by the current project properties will be available to storyboards with integrated question support. Because the CCT cannot determine what completion states are applicable to the custom question, fields specific to the Extended Custom Messages remediation type (usually only available to the Matching storyboard types) are available. Per-response messages are not supported for custom question types.
Since integrated question support was designed to help create question types not currently supported the BCF, it should come as no surprise that question support for the sequencer and Command storyboard types is not provided by the BCF. Runtime developers must add whatever functionality is required by the new questions. The BasePlayer and RenderingPlayer objects may provide a good starting point for custom questions. Depending on the type of question, developers may be able to use the existing MatchingPlayer or MultipleChoicePlayer, or may wish to consider writing a translation layer to convert the custom data to a matching- or multiple-choice-compatible format.