Archetypes · Collections
Table
Rows×cols, sort/select (a.k.a. DataGrid).
#Contract
Rows×cols, sort/select (a.k.a. DataGrid). This is the archetype's identity: a component that keeps it is a Table on every target, however differently each one draws it. Its content category is a region, which decides where it may sit and what it may contain.
#Anatomy
The published parts, with the role each one carries. The role is what a target derives the element from; the file never names an element.
header: container
column: item
label: text
body: container
row: item
cell: item#Behaviours
Composed from the prelude's atoms. An optional one is marked.
selection- optionalorderingbrowseresize- optionalvirtualization- optional
#Realization
aggregation/grouping is data, not a behavior
#Start from it
A component that starts from Table, before the author touches it: the root and the published anatomy, each part with the kind its role gives it. Paste it into a file, or open it in the Playground, and add the contract, the tokens and the states.
component Table { archetype Table part Table: container { } part header: container { } part header.column: item { } part header.column.label: text { } part body: container { } part body.row: item { } part body.row.cell: item { } }
Every statement a part can carry is in the reference; the tour shows the arc from archetype to generated code.