Package limn.components.table


@NullMarked package limn.components.table
A table: columns over a list the application owns, virtualized on both axes.

Table is the widget; Column names a title, how a row becomes a cell value, how that value becomes text, how rows compare on it and how wide it is. The application keeps its rows in a List the table holds by reference and re-reads on Table.refresh(); nothing is copied and nothing is read until it is on screen, so a table over a million rows costs what one over twenty does.

A cell is a value drawn as text until its column asks for a widget (Column.widget); those cells are real children, mounted and recycled with their row, and they are the whole of in-row interaction: the table does not edit cells in place, by decision, and a record is edited whole, in a dialog or a panel. Sorting keeps a permutation over the application's list and never reorders it, so the selection — a set of model rows — survives a sort.

  • Class
    Description
    One column of a Table: a title, how a row becomes a cell, how rows compare on it, and how wide it is.
    Where a cell's text sits across its column.
    How a Table is ordered on one of its columns.
    A table: Columns over a list the application owns, virtualized on both axes.