A layer is a rectangular region of grid cells. A layer has methods to access its columns, rows, width and height. All layers implement the ILayer interface. A layer can be stacked on top of another layer in order to expose a transformed view of its underlying layer's grid cell structure. Layers are used in this way to encapsulate grid transformation behavior such as hiding and reordering columns.
Columns and rows in a layer are referenced either by position or index:
These concepts are illustrated by the following example:
Hide Layer C
0 1 2 3 4 <- column positions
1 0 3 4 5 <- column indexes
Reorder Layer B
0 1 2 3 4 5 <- column positions
2 1 0 3 4 5 <- column indexes
Data Layer A
0 1 2 3 4 5 <- column positions
0 1 2 3 4 5 <- column indexes
In the above example, Hide Layer C is stacked on top of Reorder Layer B, which is in turn stacked on top of Data
Layer A. The positions in Data Layer A are the same as its indexes, because it is the lowest level layer in the
stack. Reorder Layer B reorders column 0 of its underlying layer (Data Layer A) after column 2 of its underlying
layer. Hide Layer C hides the first column of its underlying layer (Reorder Layer B).
Layers can also be laterally composed into larger layers. For instance, the standard grid layer is composed of a
body layer, column header layer, row header layer, and corner layer:
| corner | column header |
| row header | body |