Renders an HTML "table" element compliant with the HTML 401 specification. Render the "caption" facet, if present, inside a "caption" element immediately below the "table" element. If the "captionClass" attribute is specified, render its value as the value of the "class" attribute on the "caption" element. If the "captionStyle" attribute is specified, render its value as the value of the "style" attribute on the "caption" element.
Please consult the javadoc for UIData
to supplement this specification. If the "styleClass" attribute
is specified, render its value as the value of the "class"
attribute on the "table" element. Any pass-through attributes are
also rendered on the "table" element.
Rendering the header
If the UIData
component has a "header" facet, or
any of the child UIColumn
components has a "header"
facet, render a "thead" element. If the UIData
component has a "header" facet, encode its contents inside of "tr"
and "th" elements, respectively. Output the value of the
"headerClass" attribute of the UIData
component, if
present, as the value of the "class" attribute on the "th".
Output the number of child UIColumn
components of the
UIData
component as the value of the "colspan"
attribute on the "th". Output "colgroup" as the value of the
"scope" attribute on the "th" element.
If any of the child UIColumn
components has a
"header" facet render a "tr" element. For each
UIColumn
that actually has a "header" facet, render
it inside of a "th" element. Columns that don't have a "header"
facet cause an empty "th" element to be rendered. Output the
value of the "headerClass" attribute of the UIColumn
component, if present, as the value of the "class" attribute on
the "th". If the "headerClass" attribute of the UIColumn
component is not present, output the value of the "headerClass"
attribute of the UIData
component, if present, as
the value of the "class" attribute on the "th". Output "col" as
the value of the "scope" attribute on the "th" element.
Close out the "thead" element.
Rendering the footer
Follow the same process as for the header, except replace "header" with "footer", "th" with "td", "thead" with "tfoot", and "headerClass" with "footerClass". Do not render any "scope" attribute for the footer.
Rendering the table body
Render a "tbody" element. Keep track of the result of the
"rows" property on the UIData
component. Keep track
of the number of rows we have rendered so far. Iterate through
the rows. Set the "rowIndex" property of the UIData
component to be correct as we iterate through the rows. Stop
rendering children and close out the "tbody" element if the
"rowAvailable" property of the UIData
returned false.
Output a "tr" element. Output the value of the "rowClasses" per
the attribute description below. For each UIColumn
child, output a "td" element, attaching the value of the
"columnClasses" attribute of the UIData
component per
the attribute description below. Recursively encode each child of
each UIColumn
child. Close out the "td" element.
When done with the row, close out the "tr" element. When done
with all the rows, close out the "tbody" element.
When done rendering all the rows, set the "rowIndex" property of
the UIData
to -1, and close out the "table"
element.
This renderer is responsible for rendering its children.
Attributes with a pass-through
value of
true
are not interpreted by the renderer and are passed
straight through to the rendered markup, without checking for validity. Attributes with a
pass-through
value of false
are interpreted
by the renderer, and may or may not be checked for validity by the renderer.
Attributes | |||||
attribute-name | pass-through | attribute-class | description | default-value | |
---|---|---|---|---|---|
bgcolor
|
true | java.lang.String |
Name or code of the background color for this table. | undefined | |
border
|
true | int |
Width (in pixels) of the border to be drawn around this table. | undefined | |
captionClass
|
false | java.lang.String |
Space-separated list of CSS style class(es) that will be applied to any caption generated for this table. | undefined | |
captionStyle
|
false | java.lang.String |
CSS style(s) to be applied when this caption is rendered. | undefined | |
cellpadding
|
true | java.lang.String |
Definition of how much space the user agent should leave between the border of each cell and its contents. | undefined | |
cellspacing
|
true | java.lang.String |
Definition of how much space the user agent should leave between the left side of the table and the leftmost column, the top of the table and the top of the top side of the topmost row, and so on for the right and bottom of the table. It also specifies the amount of space to leave between cells. | undefined | |
columnClasses
|
false | java.lang.String |
Comma-delimited list of CSS style classes that will be applied to the columns of this table. A space separated list of classes may also be specified for any individual column. If the number of elements in this list is less than the number of columns specified in the "columns" attribute, no "class" attribute is output for each column greater than the number of elements in the list. If the number of elements in the list is greater than the number of columns specified in the "columns" attribute, the elements at the posisiton in the list after the value of the "columns" attribute are ignored. | undefined | |
dir
|
true | java.lang.String |
Direction indication for text that does not inherit directionality. Valid values are "LTR" (left-to-right) and "RTL" (right-to-left). | undefined | |
footerClass
|
false | java.lang.String |
Space-separated list of CSS style class(es) that will be applied to any footer generated for this table. | undefined | |
frame
|
true | java.lang.String |
Code specifying which sides of the frame surrounding this table will be visible. Valid values are: none (no sides, default value); above (top side only); below (bottom side only); hsides (top and bottom sides only); vsides (right and left sides only); lhs (left hand side only); rhs (right hand side only); box (all four sides); and border (all four sides). | undefined | |
headerClass
|
false | java.lang.String |
Space-separated list of CSS style class(es) that will be applied to any header generated for this table. | undefined | |
lang
|
true | java.lang.String |
Code describing the language used in the generated markup for this component. | undefined | |
onclick
|
true | java.lang.String |
Javascript code executed when a pointer button is clicked over this element. | undefined | |
ondblclick
|
true | java.lang.String |
Javascript code executed when a pointer button is double clicked over this element. | undefined | |
onkeydown
|
true | java.lang.String |
Javascript code executed when a key is pressed down over this element. | undefined | |
onkeypress
|
true | java.lang.String |
Javascript code executed when a key is pressed and released over this element. | undefined | |
onkeyup
|
true | java.lang.String |
Javascript code executed when a key is released over this element. | undefined | |
onmousedown
|
true | java.lang.String |
Javascript code executed when a pointer button is pressed down over this element. | undefined | |
onmousemove
|
true | java.lang.String |
Javascript code executed when a pointer button is moved within this element. | undefined | |
onmouseout
|
true | java.lang.String |
Javascript code executed when a pointer button is moved away from this element. | undefined | |
onmouseover
|
true | java.lang.String |
Javascript code executed when a pointer button is moved onto this element. | undefined | |
onmouseup
|
true | java.lang.String |
Javascript code executed when a pointer button is released over this element. | undefined | |
rowClasses
|
false | java.lang.String |
Comma-delimited list of CSS style classes that will be applied to the rows of this table. A space separated list of classes may also be specified for any individual row. Thes styles are applied, in turn, to each row in the table. For example, if the list has two elements, the first style class in the list is applied to the first row, the second to the second row, the first to the third row, the second to the fourth row, etc. In other words, we keep iterating through the list until we reach the end, and then we start at the beginning again. | undefined | |
rules
|
true | java.lang.String |
Code specifying which rules will appear between cells within this table. Valid values are: none (no rules, default value); groups (between row groups); rows (between rows only); cols (between columns only); and all (between all rows and columns). | undefined | |
style
|
true | java.lang.String |
CSS style(s) to be applied when this component is rendered. | undefined | |
styleClass
|
false | java.lang.String |
Space-separated list of CSS style class(es) to be applied when this element is rendered. This value must be passed through as the "class" attribute on generated markup. | undefined | |
summary
|
true | java.lang.String |
Summary of this table's purpose and structure, for user agents rendering to non-visual media such as speech and Braille. | undefined | |
title
|
true | java.lang.String |
Advisory title information about markup elements generated for this component. | undefined | |
width
|
true | java.lang.String |
Width of the entire table, for visual user agents. | undefined |
Copyright (c) 2003-2004 Sun Microsystems, Inc. All Rights Reserved.