/// <summary> /// Returns the given items in a table with {@code size.width} columns and /// {@code size.height} rows. If the table is too big, empty cells will be /// created as needed. If the table is too small, the items that don't fit /// will not be rendered. /// </summary> /// <param name="items"> Palette items.</param> /// <param name="size"> Palette size (columns x rows); both dimensions /// must be specified as numbers.</param> /// <param name="dom"> DOM helper for document interaction.</param> /// <returns>Palette table element.</returns> public HTMLElement createGrid(ControlContent items, goog.math.Size size, goog.dom.DomHelper dom) { var rows = new JsArray <Node>(); for (int row = 0, index = 0; row < size.height; row++) { var cells = new JsArray <Node>(); for (var column = 0; column < size.width; column++) { var item = items != null?items.AsArray()[index++] : null; cells.Push(this.createCell(item, dom)); } rows.Push(this.createRow(cells, dom)); } return(this.createTable(rows, dom)); }