A virtualized data table: a fixed header of columns above a UIList of rows, where each row draws one text cell per column. Only on-screen rows exist as display objects (inherited from UIList), so a table of any height stays cheap.

Data is provider-driven (setData(rowCount, cellProvider)): the grid never copies the source, it just asks for cell(row, column) text on demand. Clicking a sortable column header sorts a display-order permutation in place (the source is untouched); selection is reported and kept in SOURCE row indices across sorts.

Constructor

@:value({ rowHeight : 0 })new(width:Float, height:Float, rowHeight:Float = 0)

Parameters:

width

layout width

height

total height (header + rows)

rowHeight

base (unscaled) row height; 0 picks the platform default

Variables

@:value(28)headerHeightBase:Float = 28

Base (unscaled) header height.

read onlylist:UIList

The backing virtualized list.

read onlyselectedRow:Int

The selected SOURCE row index, or -1.

@:value(true)read onlysortAscending:Bool = true

Sort direction of sortColumn.

@:value(-1)read onlysortColumn:Int = -1

The sorted column, or -1.

@:value(null)onActivate:Int ‑> Void = null

Fired on double click / Enter (source row index).

@:value(null)onSelect:Int ‑> Void = null

Fired when the selected row changes (source row index, or -1).

Methods

inlinerefresh():Void

Rebinds the visible rows after mutating cell values in place.

setColumns(columns:Array<UIDataColumn>):Void

Sets the columns and repaints the header.

Parameters:

columns

the column definitions (widths in base/unscaled units)

setData(rowCount:Int, cell:(Int, Int) ‑> String):Void

Sets the row data source. cell(row, column) is asked for text lazily.

Parameters:

rowCount

the number of source rows

cell

resolves a cell's text for a (source row, column) pair

sortBy(column:Int):Void

Sorts by a column (toggles direction when already sorted by it).

Parameters:

column

the column index (ignored if not sortable)

Inherited Variables

Defined by UIComponent

@:value(true)enabled:Bool = true

Disabled widgets ignore the pointer and typically render dimmed.

@:value(0)read onlyh:Float = 0

Layout height in UI units.

@:value(MouseCursor.BUTTON)hoverCursor:MouseCursor = MouseCursor.BUTTON

Native cursor while hovering (interactive widgets; null keeps the arrow).

@:value(false)read onlyhovered:Bool = false

true while the cursor is over this widget.

@:value(false)longPressable:Bool = false

Opts a subclass that overrides onRightPress (without setting onRightClick) into long-press-as-right-click on touch. Widgets with onRightClick set are included automatically.

@:value(null)onClick:() ‑> Void = null

Fired on a completed click (press + release on this widget). Requires an interactive widget.

@:value(null)onHover:() ‑> Void = null

Fired when the cursor first enters this widget (hover-driven descriptions/previews). Interactive widgets only.

@:value(null)onRightClick:() ‑> Void = null

Fired on a right mouse press over this widget (context menus). Only interactive widgets receive pointer events, so this never fires on passive widgets like UILabel/UIPanel — attach it to a UIButton (or another interactive widget) instead. On touch, a long-press fires the same path (see UIRoot.longPressMs).

@:value(false)read onlypressed:Bool = false

true while a press that started here is held.

@:value(null)tooltip:String = null

Optional tooltip text (already-localized or a fixed string).

@:value(null)tooltipShortcut:String = null

Optional right-aligned shortcut hint rendered in the tooltip.

@:value(0)read onlyw:Float = 0

Layout width in UI units (independent of DisplayObject's content-derived width).

Inherited Methods

Defined by UIComponent

dispose():Void

Tears the widget down: listeners, pointer references, children, parent link.

invalidate():Void

Schedules a repaint for the next frame (cheap; deduplicated).

resize(width:Float, height:Float):Void

Sets the layout size and repaints when it changed.

Parameters:

width

the new layout width in UI units

height

the new layout height in UI units