/* * Copyright 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.dom.client; /** * The create* and delete* methods on the table allow authors to construct and * modify tables. [HTML 4.01] specifies that only one of each of the CAPTION, * THEAD, and TFOOT elements may exist in a table. Therefore, if one exists, and * the createTHead() or createTFoot() method is called, the method returns the * existing THead or TFoot element. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#edef-TABLE">W3C HTML Specification</a> */ @TagName(TableElement.TAG) public class TableElement extends Element { public static final String TAG = "table"; /** * Assert that the given {@link Element} is compatible with this class and * automatically typecast it. */ public static TableElement as(Element elem) { assert elem.getTagName().equalsIgnoreCase(TAG); return (TableElement) elem; } protected TableElement() { } /** * Create a new table caption object or return an existing one. * * @return A CAPTION element. */ public final native TableCaptionElement createCaption() /*-{ return this.createCaption(); }-*/; /** * Create a table footer row or return an existing one. * * @return A footer element (TFOOT) */ public final native TableSectionElement createTFoot() /*-{ return this.createTFoot(); }-*/; /** * Create a table header row or return an existing one. * * @return A new table header element (THEAD) */ public final native TableSectionElement createTHead() /*-{ return this.createTHead(); }-*/; /** * Delete the table caption, if one exists. */ public final native void deleteCaption() /*-{ this.deleteCaption(); }-*/; /** * Delete a table row. * * @param index The index of the row to be deleted. This index starts from 0 * and is relative to the logical order (not document order) of all * the rows contained inside the table. If the index is -1 the last * row in the table is deleted */ public final native void deleteRow(int index) /*-{ this.deleteRow(index); }-*/; /** * Delete the header from the table, if one exists. */ public final native void deleteTFoot() /*-{ this.deleteTFoot(); }-*/; /** * Delete the header from the table, if one exists. */ public final native void deleteTHead() /*-{ this.deleteTHead(); }-*/; /** * The width of the border around the table. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-border-TABLE">W3C HTML Specification</a> */ public final native int getBorder() /*-{ return this.border; }-*/; /** * The table's CAPTION, or null if none exists. */ public final native TableCaptionElement getCaption() /*-{ return this.caption; }-*/; /** * Specifies the horizontal and vertical space between cell content and cell * borders. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-cellpadding">W3C HTML Specification</a> */ public final native int getCellPadding() /*-{ return this.cellPadding; }-*/; /** * Specifies the horizontal and vertical separation between cells. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-cellspacing">W3C HTML Specification</a> */ public final native int getCellSpacing() /*-{ return this.cellSpacing; }-*/; /** * Specifies which external table borders to render. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-frame">W3C HTML Specification</a> */ public final native String getFrame() /*-{ return this.frame; }-*/; /** * Returns a collection of all the rows in the table, including all in THEAD, * TFOOT, all TBODY elements. */ public final native NodeList<TableRowElement> getRows() /*-{ return this.rows; }-*/; /** * Specifies which internal table borders to render. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-rules">W3C HTML Specification</a> */ public final native String getRules() /*-{ return this.rules; }-*/; /** * Returns a collection of the table bodies (including implicit ones). */ public final native NodeList<TableSectionElement> getTBodies() /*-{ return this.tBodies; }-*/; /** * The table's TFOOT, or null if none exists. */ public final native TableSectionElement getTFoot() /*-{ return this.tFoot; }-*/; /** * The table's THEAD, or null if none exists. */ public final native TableSectionElement getTHead() /*-{ return this.tHead; }-*/; /** * Specifies the desired table width. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-width-TABLE">W3C HTML Specification</a> */ public final native String getWidth() /*-{ return this.width; }-*/; /** * Insert a new empty row in the table. The new row is inserted immediately * before and in the same section as the current indexth row in the table. If * index is -1 or equal to the number of rows, the new row is appended. In * addition, when the table is empty the row is inserted into a TBODY which is * created and inserted into the table. * * Note: A table row cannot be empty according to [HTML 4.01]. * * @param index The row number where to insert a new row. This index starts * from 0 and is relative to the logical order (not document order) * of all the rows contained inside the table * @return The newly created row */ public final native TableRowElement insertRow(int index) /*-{ return this.insertRow(index); }-*/; /** * The width of the border around the table. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-border-TABLE">W3C HTML Specification</a> */ public final native void setBorder(int border) /*-{ this.border = border; }-*/; /** * The table's CAPTION, or null if none exists. */ public final native void setCaption(TableCaptionElement caption) /*-{ this.caption = caption; }-*/; /** * Specifies the horizontal and vertical space between cell content and cell * borders. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-cellpadding">W3C HTML Specification</a> */ public final native void setCellPadding(int cellPadding) /*-{ this.cellPadding = cellPadding; }-*/; /** * Specifies the horizontal and vertical separation between cells. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-cellspacing">W3C HTML Specification</a> */ public final native void setCellSpacing(int cellSpacing) /*-{ this.cellSpacing = cellSpacing; }-*/; /** * Specifies which external table borders to render. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-frame">W3C HTML Specification</a> */ public final native void setFrame(String frame) /*-{ this.frame = frame; }-*/; /** * Specifies which internal table borders to render. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-rules">W3C HTML Specification</a> */ public final native void setRules(String rules) /*-{ this.rules = rules; }-*/; /** * The table's TFOOT, or null if none exists. */ public final native void setTFoot(TableSectionElement tFoot) /*-{ this.tFoot = tFoot; }-*/; /** * The table's THEAD, or null if none exists. */ public final native void setTHead(TableSectionElement tHead) /*-{ this.tHead = tHead; }-*/; /** * Specifies the desired table width. * * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#adef-width-TABLE">W3C HTML Specification</a> */ public final native void setWidth(String width) /*-{ this.width = width; }-*/; }