|
Document revision: 2024-05-27
Refers to JDLG version: 2.0.18
Typeahead functionality
The typeahead function prevents characters from being lost if they
are typed while the
Dialog is not interactive, i.e.,
currently outside DLG DO.
The typeahead function includes the TAB and/or ENTER keys used
for forward focus navigation and therefore buffers keyboard input
across multiple objects.
The System.typeahead
or eloquence.config.typeahead
configuration allow to globally enable or disable the typeahead
function (default: typeahead enabled).
How the buffered keyboard input is processed depends on the class
of the currently focused object, i.e., the object class receiving
the buffered input the next time DLG DO is executed.
ComboBox,
EditText:
- The buffered characters are inserted at the cursor position or
replace the current selection.
- The TAB key moves the focus to the next focusable object.
- Single-line
EditText or
ComboBox: The ENTER key moves
the focus to the next focusable object.
- Multi-line
EditText: The ENTER key inserts
a newline character at the cursor position.
CheckBox,
PushButton,
RadioButton:
- The SPACE character triggers a button click.
- The TAB key moves the focus to the next focusable object.
- The ENTER key function depends on the setting of the
traversecr
attribute.
If traversecr
is zero, ENTER triggers a button click. If it is nonzero,
ENTER moves the focus to the next focusable object.
- All other characters are considered invalid (see
notes below).
PopText:
- The buffered characters are used to select a PopText entry.
If no entry is matched the input is considered invalid (see
notes below).
- The TAB key moves the focus to the next focusable object.
- The ENTER key function depends on the setting of the
traversecr
attribute.
If traversecr
is zero, ENTER submits the PopText rule to the program.
If it is nonzero, ENTER moves the focus to the next focusable
object.
All other object classes:
- The TAB key moves the focus to the next focusable object.
- All other characters are considered invalid (see
notes below).
Notes:
- DLG SET focus clears the buffer
(i.e., the typeahead function is stopped).
- When an invalid typeahead character is encountered, the buffer
is cleared (i.e., the typeahead function is stopped) and a user
beep notification is issued (depending on the
System.notifybusy
or eloquence.config.notifybusy
configuration).
- An invalid typeahead character may either occur during keyboard
input or when the focused control processes the buffered input.
The typeahead buffer only accepts input characters and forward
focus navigation keys. Cursor, function and accelerator keys as
well as editor keys (e.g. BACKSPACE) are considered invalid.
- If the Dialog.cr attribute
is set to a nonzero value, a buffered ENTER key is not processed
but considered invalid.
- The typeahead buffer expires 10 seconds after the last character
was buffered.
- Requires JDLG version 1.5.7-110518-1310 or newer.
- JDLG versions before 1.7.0 only buffer keyboard input if a
ComboBox or
EditText object has the focus.
TAB/ENTER forward focus navigation across multiple objects is
not buffered.
|
|