/// <summary> /// Returns a table element (or equivalent) that wraps the given rows. /// </summary> /// <param name="rows">Array of row elements.</param> /// <param name="dom">DOM helper for document interaction.</param> /// <returns>Palette table element.</returns> public HTMLElement createTable(JsArray <Node> rows, goog.dom.DomHelper dom) { var table = (HTMLTableElement)dom.createDom( goog.dom.TagName.TABLE, le.getCssName(this.getCssClass(), "table"), dom.createDom( goog.dom.TagName.TBODY, le.getCssName(this.getCssClass(), "body"), rows)); table.CellSpacing = "0"; table.CellPadding = "0"; return(table); }
/// <summary> /// Returns a table cell element (or equivalent) that wraps the given palette /// item (which must be a DOM node). /// </summary> /// <param name="node">Palette item.</param> /// <param name="dom">DOM helper for document interaction.</param> /// <returns>Cell element.</returns> public HTMLElement createCell(Union <string, Node, NodeList, JsArray <Node> > node, goog.dom.DomHelper dom) { var cell = dom.createDom( goog.dom.TagName.TD, new Dictionary <string, string> { { "class", le.getCssName(this.getCssClass(), "cell") }, // Cells must have an ID, for accessibility, so we generate one here. { "id", le.getCssName(this.getCssClass(), "cell-") + goog.ui.PaletteRenderer.cellId_++ } }, node); goog.a11y.aria.setRole(cell, goog.a11y.aria.Role.GRIDCELL); // Initialize to an unselected state. goog.a11y.aria.setState(cell, goog.a11y.aria.State.SELECTED, false); if (goog.dom.getTextContent(cell) == null && goog.a11y.aria.getLabel(cell) == null) { var ariaLabelForCell = this.findAriaLabelForCell_(cell); if (ariaLabelForCell != null) { goog.a11y.aria.setLabel(cell, ariaLabelForCell); } } return(cell); }
/// <summary> /// Returns a table row element (or equivalent) that wraps the given cells. /// </summary> /// <param name="cells">Array of cell elements.</param> /// <param name="dom">DOM helper for document interaction.</param> /// <returns>Row element.</returns> public HTMLElement createRow(JsArray <Node> cells, goog.dom.DomHelper dom) { var row = dom.createDom( goog.dom.TagName.TR, le.getCssName(this.getCssClass(), "row"), cells); goog.a11y.aria.setRole(row, goog.a11y.aria.Role.ROW); return(row); }