Members
(static, constant) MAX_VISIBLE_ROWS
- Default Value
- 8
(static, constant) PANEL_WIDTH
Row height and spacing come from dialogLayout.bs (LIST_ROW_*), where the spacing gate covers them. LIST_ROW_SPACING matches JRLabelList's own default so the dialog's list has the same visual rhythm as every other list in the app.
- Default Value
- 900
Methods
(static) applyLayout() → {void}
- Type:
- void
(static) cancelDialog() → {void}
Cancel this dialog from OUTSIDE — see cancelOpenDialog() in source/utils/dialogs.bs. Routed through resolveDialog so the once-only guard and the standard cancelled result both apply: a third party clearing the screen must be indistinguishable from the user pressing Back, or the owner waiting on the result is stranded.
- Type:
- void
(static) closeDialog() → {void}
Same close mechanics as JRDialog / OverviewDialog: removeChild + returnFocusTo.
- Type:
- void
(static) init() → {void}
- Type:
- void
(static) listHeightFor(rows) → {integer}
A row is LIST_ROW_HEIGHT tall and the gaps sit BETWEEN rows, so n rows occupy n * height + (n - 1) * spacing. The two helpers below are inverses of each other; keeping them adjacent is what stops the pair drifting.
| Name | Type | Description |
|---|---|---|
rows | integer |
- Type:
- integer
(static) onDialogFocusChanged() → {void}
Screen-reader announcement, driven by the focus event itself rather than a guessed delay (see JRDialog.onButtonFocusChanged for the full reasoning).
Only the opening announcement is ours. The list is a real LabelList, which the platform narrates itself (focused row title plus a navigation hint), and there is nothing else in this dialog to announce.
- Type:
- void
(static) onItemSelected() → {void}
- Type:
- void
(static) onItemsChanged() → {void}
- Type:
- void
(static) onKeyEvent(key, press) → {boolean}
| Name | Type | Description |
|---|---|---|
key | string | |
press | boolean |
- Type:
- boolean
(static) onOpeningAnnouncementDue() → {void}
Announce the dialog once the platform's own focus announcement is out of the way.
- Type:
- void
(static) onTitleChanged() → {void}
- Type:
- void
(static) onTitleMeasured() → {void}
- Type:
- void
(static) resolveDialog(index) → {void}
Resolve exactly once, then close. index = -1 means dismissed without choosing.
| Name | Type | Description |
|---|---|---|
index | integer |
- Type:
- void
(static) rowsThatFit(available) → {integer}
Most rows that fit in available. Add one spacing back before dividing, because the last row does not carry one. Never returns 0: a dialog with no visible rows is worse than one row over budget, and the caller has already established there is at least one option.
| Name | Type | Description |
|---|---|---|
available | integer |
- Type:
- integer
(static) settleLayout() → {void}
Lay out NOW, called by presentOverlayDialog once this dialog is attached.
The dialog is hidden until this returns, so there is no renderTracking to wait on — and none is needed, because localBoundingRect() answers while hidden. See dialogReveal.bs.
- Type:
- void