| com.sun.rave.web.ui.component.TableColumnBase
All known Subclasses: com.sun.rave.web.ui.component.TableColumn,
TableColumnBase | abstract public class TableColumnBase extends javax.faces.component.UIComponentBase (Code) | | Use the ui:tableColumn
tag to define the column cells of a table, inside a ui:table
tag. A ui:tableRowGroup must include at least one ui:tableColumn
tag.
The ui:table
tag is
used to define the structure and actions of the table, and is a
container for ui:tableRowGroup
which define the rows of a table. The ui:tableRowGroup
tag is a container for
ui:tableColumn
tags, which are used to define the
columns of the table.
The documentation
for the ui:table tag
contains detailed information
about the table component. This page provides details about how
to define table columns only.
HTML Elements and Layout
The tableColumn component is
used to define attributes for XHTML <td>
elements, which are used
to display table data cells. However, the rendering of
column headers and footers is handled by the tableRowGroup component.
The diagram shows the table layout, and
highlights the areas that are defined with the ui:tableColumn
tag.
Title
Bar |
Action
Bar (top) |
Column Header (specified with
headerText
attribute or header facet in first ui:tableColumn
tag in ui:tableRowGroup tag) |
Column Header (specified with
headerText
attribute or header facet in second ui:tableColumn
tag in ui:tableRowGroup tag) |
Group
Header Bar |
Table
data
|
Table
data
|
Column Footer (specified with footerText
attribute or footer
facet in first ui:tableColumn
tag in ui:tableRowGroup tag) |
Column Footer (specified with footerText
attribute or footer
facet in second ui:tableColumn
tag in ui:tableRowGroup tag) |
Group
Footer Bar |
Table
Column Footer (specified with tableFooterText
attribute or tableFooter facet in ui:tableColumn
tag) |
Table
Column Footer (specified with tableFooterText
attribute or tableFooter facet in
ui:tableColumn
tag) |
|
Action
Bar (bottom) |
Footer
|
Column Header
The Column Header area
displays
a header for each table column. If you specify the text of a
column header with the headerText attribute in the ui:tableColumn
tag, the default implementation of the header is rendered. You can
specify a separate component to provide column header content by using
the header
facet, which overrides the headerText attribute.
You can add extra HTML code to the
header's rendered <td> element with the extraHeaderHtml
attribute.
The following ui:tableColumn attributes can be used to
change
the appearance and behavior for sorting of the Column Header:
-
sort
specifies a sort key and makes a column sortable.
-
sortIcon
specifies a theme identifier to select a different image to use as the
sort icon that is displayed in the header of a sortable column.
-
sortImageURL
specifies the path to an image to use as the sort icon that is
displayed in the header of a
sortable column.
-
descending when set to true causes the column
to be sorted in descending order.
severity specifies the severity of an alarm
in each cell, and causes the column to sort on the severity value
if used with the sort attribute.
Column Footer
The Column Footers area
displays a footer for each table column.
If you specify the text of a column footer with the footerText
attribute in the ui:tableColumn tag, the default
implementation of the footer is rendered. You can specify a separate
component to provide footer content by using the footer
facet, which overrides the footerText attribute.
You can add extra HTML code to the
footer's rendered <td> element with the extraFooterHtml
attribute.
Table Column Footer
The Table Column
Footers area displays column footers at the
bottom of the table.
The table column footers are useful in tables with multiple groups of
rows. If you specify the text of table column footers with the tableFooterText
attribute, the default implementation of the footer is rendered.
You can specify a separate component to provide the content for a table
column footer by
using the tableFooter facet, which overrides the tableFooterText
attribute. You
can add extra HTML code to the table footer's rendered <td>
element with the extraTableFooterHtml attribute.
Alignment and Formatting
of Cells
In addition to defining the
headers and footers for columns, the
ui:tableColumn tag can be used to set other aspects of the
table's
appearance and behavior.
The following attributes affect
the alignment of table cells:
align specifies the horizontal alignment
for
the cell data in the
column
alignKey specifies a particular data element on
which to align the
cell data
char specifies a character to use for
horizontal alignment of cell data
charOff specifies the offset of
the first
occurrence of
the alignment character
valign specifies the vertical alignment
for
the content of each cell
Attributes that can be used to make the column headers more accessible
for adaptive technologies include:
-
scope set
to a keyword to specify the portion of the table that this header
applies to.
rowHeader
set to true to specify that the content of the column's cells applies
to the row in which the
cell is located.
Attributes that affect other
aspects of cells include:
abbr
specifies an abbreviated form of the cell's content, to
be used when the browser has little space to render the content.
embeddedActions
when set to true causes separators to be rendered
between multiple action hyperlinks.
emptyCell when
set to
true causes an unexpectedly empty cell to be
rendered with an appropriate image.
spacerColumn when
set to true causes the column to be rendered as a blank column to
enhance table spacing.
height specifies
the height of a column's cells.
width specifies
the width of a column's cells.
nowrap prevents
the content of the cell from wrapping to a new line.
Selection Column
To make table rows selectable,
the first column of the table should display only checkboxes or radio
buttons that the user clicks to select the row. When you set the selectId
attribute in the ui:tableColumn tag and include a ui:checkbox
or ui:radioButton tag as a child of the ui:tableColumn
tag, the first column is rendered
appropriately. See the Select Single
Row example for more
information.
Facets
The ui:tableColumn tag supports the following facets,
which
allow you to customize the
layout of the component.
Facet
Name
|
Table Item
Implemented by the Facet
|
footer
|
Footer that is displayed at the bottom of the column within
the group of rows. The footer applies to the column of cells that are
defined
by the ui:tableColumn
tag. This facet can be used to replace the default footer for the
column.
|
header |
Header that applies to the column of cells that are defined
by the ui:tableColumn
tag. This facet can be used to replace the default header for the
column. |
tableFooter
|
Footer that is displayed at the
bottom of the table, below the last group of rows, above the Action Bar
and overall table footer. The table footer content should apply to the
column for all the groups of rows in the table. This facet can be
used to replace the default table footer for the
column. |
Client Side JavaScript
Functions
See the ui:table
tag's
JavaScript documentation.
The same functions are used for the
ui:tableColumn tag.
Examples
The following examples use a
backing bean called TableBean,
which is shown in the ui:table tag documentation. Utility
classes used in the examples are
included
in this page, after the examples.
Additional examples are shown in the ui:table
and ui:tableRowGroup
documents.
All examples assume that the ui:table tag is contained
within an HTML <form> element so that actions can
submit form data.
Examples in
this file:
Supporting
files:
Example 1: Sortable Table
This example shows how to
implement table sorting, and uses the TableBean and Name.java
code shown in the ui:table documentation. Notice that the
ui:table
tag includes the clearSortButton attribute to enable
users to clear any sorts applied to the table.
The value binding objects that you assign to the sort
attribute in ui:tableColumn must be the proper data type
for sorting to work as expected. For example, you should not use String
objects for numeric data because the digits will be sorted according to
their ASCII values. Sorting the numbers as strings causes the number 2
to be displayed before the number 11, for example. Be sure to
sort using objects such as Number, Character, Date, Boolean, etc.
You can use a FieldKey id or
value binding to define criteria for sorting the contents of
TableDataProvider. However, when sorting a column of checkboxes or
radio buttons, you must use a value binding because values are external
to the data (i.e., TableDataProvider does not contain FieldKey ids for
a selected checkbox value).
User interface
guidelines recommend not setting a default initial sort. However, if
you want to set a default initial sort, you can do so by using the addSort(SortCriteria)
method of TableRowGroup. When the table is rendered, the data is sorted
and the primary sort column is highlighted.
<!-- Sortable
Table -->
<ui:table id="table1"
clearSortButton="true"
sortPanelToggleButton="true"
title="Sortable Table">
<ui:tableRowGroup id="rowGroup1"
sourceData="#{TableBean.groupB.names}"
sourceVar="name">
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name"
rowHeader="true"
sort="last">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2"
alignKey="first"
headerText="First Name"
sort="first">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
Example 2: Select Single Row
This example shows a column of
radioButton components that are used to select
a single table row. Dynamic row highlighting is set by invoking an
initAllRows() JavaScript function whenever the state of
the radio button
changes. The initAllRows()
function is defined in select.js
shown below. The
radio button state is maintained through the selected
attribute of the
ui:tableRowGroup tag. This example does not maintain state
across paginated
pages.
Note: UI guidelines recommend
that items should not remain selected when they cannot be seen by the
user. Using the
com.sun.rave.web.ui.event.TableSelectPhaseListener object
ensures that rows that are hidden from view are
deselected because the phase listener clears the selected state after
the
rendering phase. The TableSelectPhaseListener
object is used in this example in Select.java
in the ui:table documentation. Also refer to the JavaDoc
for TableSelectPhaseListener for more information.
<!-- Single Select Row -->
<ui:table id="table1"
deselectSingleButton="true"
paginateButton="true"
paginationControls="true"
title="Select Single Row">
<ui:tableRowGroup id="rowGroup1"
selected="#{TableBean.groupA.select.selectedState}"
sourceData="#{TableBean.groupA.names}"
sourceVar="name" rows="5">
<ui:tableColumn id="col0"
onClick="setTimeout('initAllRows()', 0)"
selectId="select"
sort="#{TableBean.groupA.select.selectedState}">
<ui:radioButton id="select"
name="select"
selected="#{TableBean.groupA.select.selected}"
selectedValue="#{TableBean.groupA.select.selectedValue}"/>
</ui:tableColumn>
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name" rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2" alignKey="first"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
select.js
This example shows the contents of the select.js file
used in the
example above.
// Use this function to initialize all rows displayed in the
table when the
// state of selected components change (i.e., checkboxes or
radiobuttons used to
// de/select rows of the table). This functionality requires the
selectId
// property of the tableColumn component to be set.
//
// Note: Use setTimeout when invoking this function. This will ensure
that
// checkboxes and radiobutton are selected immediately, instead of
waiting for
// the onClick event to complete. For example:
//
// onClick="setTimeout('initAllRows(); disableActions()', 0)"
function initAllRows() {
// Disable table actions by default.
var table = document.getElementById("form1:table1");
table.initAllRows();
}
Example 3: Select Multiple Rows
This example shows a column of
checkbox components that are used to select multiple table rows.
Dynamic row highlighting is set by
invoking an
initAllRows() JavaScript function whenever the state of
the checkbox
changes. The initAllRows()
function is defined in select.js in
the previous example. The checkbox state is maintained
through the selected attribute of the
ui:tableRowGroup tag. This example does not maintain state
across paginated
pages.
Note: UI guidelines recommend
that items should not remain selected when they cannot be seen by the
user. Using the
com.sun.rave.web.ui.event.TableSelectPhaseListener object
ensures that rows that are hidden from view are
deselected because the phase listener clears the selected state after
the
rendering phase. The TableSelectPhaseListener
object is used in this example in Select.java,
shown in the ui:table documentation. Also refer to the
JavaDoc
for TableSelectPhaseListener for more information.
<!-- Select Multiple Rows -->
<ui:table id="table1"
deselectMultipleButton="true"
selectMultipleButton="true"
paginateButton="true"
paginationControls="true"
title="Select Multiple Rows">
<ui:tableRowGroup id="rowGroup1"
selected="#{TableBean.groupA.select.selectedState}"
sourceData="#{TableBean.groupA.names}"
sourceVar="name" rows="5">
<ui:tableColumn id="col0"
selectId="select"
sort="#{TableBean.groupA.select.selectedState}">
<ui:checkbox id="select"
onClick="setTimeout('initAllRows()', 0)"
selected="#{TableBean.groupA.select.selected}"
selectedValue="#{TableBean.groupA.select.selectedValue}"/>
</ui:tableColumn>
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name" rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2" alignKey="first"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
Example 4: Hidden Selected Rows
This example is the same as Example 3: Select Multiple Rows except
that it maintains state across paginated pages, and shows how to deal
appropriately with the possibility of hiding rows that have been
selected. As in the previous example, the first column is a
column of checkboxes that can be used to select multiple rows. The
checkbox state is maintained through the selected
attribute of
the
ui:tableRowGroup tag. Dynamic row highlighting is
set by
invoking an
initAllRows() JavaScript function whenever the state of
the checkbox
changes. The initAllRows()
function is defined in select.js
in the previous example.
If your table must maintain state,
you must set the hiddenSelectedRows attribute to true in
the ui:table tag as shown in this example. The attribute
causes text to be
displayed in the table title and footer to indicate the number of
selected rows that are currently hidden from view. See the Select.java
utility class in the ui:table
documentation.
<!--
Hidden Selected Rows -->
<ui:table id="table1"
deselectMultipleButton="true"
deselectMultipleButtonOnClick="setTimeout('disableActions()', 0)"
hiddenSelectedRows="true"
paginateButton="true"
paginationControls="true"
selectMultipleButton="true"
selectMultipleButtonOnClick="setTimeout('disableActions()', 0)"
title="Hidden Selected Rows">
<ui:tableRowGroup id="rowGroup1"
binding="#{TableBean.groupA.tableRowGroup}"
selected="#{TableBean.groupA.select.selectedState}"
sourceData="#{TableBean.groupA.names}"
sourceVar="name" rows="5">
<ui:tableColumn id="col0"
selectId="select"
sort="#{TableBean.groupA.select.selectedState}">
<ui:checkbox id="select"
binding="#{TableBean.groupA.checkbox}"
onClick="setTimeout('initAllRows(); disableActions()', 0)"
selected="#{TableBean.groupA.select.selected}"
selectedValue="#{TableBean.groupA.select.selectedValue}"/>
</ui:tableColumn>
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name" rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2" alignKey="first"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
<!-- Actions (Top) -->
<f:facet name="actionsTop">
<f:subview id="actionsTop">
<jsp:include
page="actionsTop.jsp"/>
</f:subview>
</f:facet>
<!-- Actions (Bottom) -->
<f:facet name="actionsBottom">
<f:subview id="actionsBottom">
<jsp:include
page="actionsBottom.jsp"/>
</f:subview>
</f:facet>
</ui:table>
Example 5: Spacer Column
This example shows how to
create a blank column to use for spacing in a table. The spacer column
is especially useful in two-column tables. A property table, which is
used to display properties for a single object, typically includes two
data columns. The
first column identifies the properties of the object, and the second
column displays the values for each of the properties. Because tables
created with the ui:table tag expand to the width of the
browser window, the two data columns might become so wide that the
properties and their values are not close together, and readability is
reduced. To solve this problem, you can add a spacer column to one side
of the table.
In the example, the third column includes the spacerColumn
attribute set to true, and the width attribute set to
70%. The column has no header or footer text, and no data. This column
acts to always keep
the data
of the first two columns in close proximity. If a column header
and footer are required, provide an empty string for the headerText
and
footerText attributes. Set the width attribute to a value
that achieves the desired spacing.
<!-- Spacer Column -->
<ui:table id="table1" title="Spacer Column">
<ui:tableRowGroup id="rowGroup1"
sourceData="#{TableBean.groupB.names}"
sourceVar="name">
<ui:tableColumn id="col1"
alignKey="last"
footerText="Column Footer"
headerText="Last Name"
rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2"
alignKey="first"
footerText="Column Footer"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
<ui:tableColumn id="col3" spacerColumn="true"
width="70%"/>
</ui:tableRowGroup>
</ui:table>
Example 6: Empty Cells
This example shows how to
display a theme-specific icon that indicates an empty cell, when
the content of a table cell is not applicable or is unexpectedly empty.
UI guidelines
suggest that the empty cell icon should not be used for a value that is
truly null, such as an
empty alarm cell or a comment field that is blank. In addition, the
icon should not be used for cells that
contain user interface elements such as checkboxes or drop-down lists
when these elements are not applicable. Instead, the elements should
not be displayed so the cell is left empty.
In this example, the emptyCell
attribute is set to
an expression that evaluates to true in every fifth row. In your
application, it is up to you to decide how to
test if the cell is truly empty. For example, you could use this
syntax: emptyCell="#{name.value.last == null}"
<!-- Empty Cells -->
<ui:table id="table1" title="Empty Cells">
<ui:tableRowGroup id="rowGroup1"
selected="#{TableBean.groupB.select.selectedState}"
sourceData="#{TableBean.groupB.names}"
sourceVar="name" rows="5">
<ui:tableColumn id="col0"
emptyCell="#{name.tableRow.rowId % 5 == 0}"
selectId="select">
<ui:checkbox id="select"
onClick="setTimeout('initAllRows()', 0)"
selected="#{TableBean.groupB.select.selected}"
selectedValue="#{TableBean.groupB.select.selectedValue}"/>
</ui:tableColumn>
<ui:tableColumn id="col1"
emptyCell="#{name.tableRow.rowId % 5 == 0}"
alignKey="last"
headerText="Last Name"
rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2"
emptyCell="#{name.tableRow.rowId % 5 == 0}"
alignKey="first"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
Example 7: Embedded Actions
This example shows how to add
embedded actions to a table. If the
ui:tableColumn tag contains more than one tag
such as
ui:hyperlink that a re
used as embedded actions, you
should set the ui:tableColumn tag's embeddedActions attribute to
true. This attribute causes an action separator image to be displayed
between each of the rendered hyperlinks, as recommended in UI
guidelines.
<!-- Embedded Actions -->
<ui:table id="table1" title="Embedded Actions">
<ui:tableRowGroup id="rowGroup1"
sourceData="#{TableBean.groupB.names}"
sourceVar="name">
<ui:tableColumn id="col0" embeddedActions="true"
headerText="Actions">
<ui:hyperlink id="action1"
action="#{TableBean.groupB.actions.action}"
text="Action
1">
<f:param name="param"
value="#{name.value.last}"/>
</ui:hyperlink>
<ui:hyperlink id="action2"
action="#{TableBean.groupB.actions.action}"
text="Action
2">
<f:param name="param"
value="#{name.tableRow.rowId}"/>
</ui:hyperlink>
</ui:tableColumn>
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name" rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2" alignKey="first"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
Example 8: Alarms
This example shows how to add
alarms to table data cells. The second ui:tableColumn tag includes a ui:alarm tag to render the alarm icon. The ui:tableColumn tag's severity attribute is set to true, which
causes the
table data cell to appear highlighted according to level of
severity.
Note also that the column
is set to sort on the severity of the alarms. See
the TableBean
backing bean
and Name.java utlity class example in the ui:table documentation for the model data.
<!-- Alarms -->
<ui:table id="table1" title="Alarms">
<ui:tableRowGroup id="rowGroup1"
sourceData="#{TableBean.groupB.names}"
sourceVar="name">
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name"
rowHeader="true"
sort="last">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2"
alignKey="first"
headerText="First Name"
severity="#{name.value.severity}"
sort="alarm">
<ui:alarm id="alarm"
severity="#{name.value.severity}"/>
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
Example 9: Multiple Column Headers
& Footers
This example shows how to use nested tableColumn components to create
multiple headers and footers. The column header of the parent
tableColumn component will span the nested tableColumn children. Not
all attributes are supported in this configuration. Typically, only the
header, footer, tableFooter, and sort would apply to a header and
spaning multuple columns. Sorting is supported, but is recommended only
for tableColumn children. Further, nesting tableColumn components will
render; however, the styles used here support one level of nexting.
This example shows how to use
nested ui:tableColumn tags to create
multiple headers and footers. The third ui:tableColumn
(col3) contains four nested columns col3a, col3b, col3c, and col3d. The
column header specified in col3 spans the four nested columns.
However, not
all ui:tableColumn
attributes are supported when the
tags are nested. Typically, only the
header, footer, tableFooter, and sort would apply to a header and
spaning multiple columns. Sorting in the parent tableColumn is
supported, but for usability, sorting is recommended only for
tableColumn children. In addition, nesting of more than one level of
tableColumn components will render, but the CSS styles only support one
level of nesting.
<!-- Multiple Headers & Footers -->
<ui:table id="table1"
clearSortButton="true"
deselectMultipleButton="true"
deselectMultipleButtonOnClick="setTimeout('disableActions()', 0)"
footerText="Table Footer"
paginateButton="true"
paginationControls="true"
selectMultipleButton="true"
selectMultipleButtonOnClick="setTimeout('disableActions()', 0)"
sortPanelToggleButton="true"
title="Multiple Headers & Footers">
<ui:tableRowGroup id="rowGroup1"
binding="#{TableBean.groupA.tableRowGroup}"
rows="#{TableBean.groupA.preferences.rows}"
selected="#{TableBean.groupA.select.selectedState}"
sourceData="#{TableBean.groupA.names}"
sourceVar="name">
<ui:tableColumn id="col0"
selectId="select"
sort="#{TableBean.groupA.select.selectedState}">
<ui:checkbox id="select"
onClick="setTimeout('initAllRows(); disableActions()', 0)"
selected="#{TableBean.groupA.select.selected}"
selectedValue="#{TableBean.groupA.select.selectedValue}"/>
</ui:tableColumn>
<ui:tableColumn id="col1"
alignKey="last"
headerText="Last Name"
rowHeader="true">
<ui:staticText
text="#{name.value.last}"/>
</ui:tableColumn>
<ui:tableColumn id="col2"
alignKey="first"
headerText="First Name">
<ui:staticText
text="#{name.value.first}"/>
</ui:tableColumn>
<ui:tableColumn id="col3" headerText="Task
Status">
<!-- Nested Columns -->
<ui:tableColumn id="col3a"
headerText="A"
footerText="ColFtrA"
sort="last"
sortIcon="ALARM_CRITICAL_MEDIUM"
tableFooterText="TblFtrA">
<ui:staticText
text="a"/>
</ui:tableColumn>
<ui:tableColumn id="col3b"
headerText="B"
footerText="ColFtrB"
sort="first"
sortIcon="ALARM_MAJOR_MEDIUM"
tableFooterText="TblFtrB">
<ui:staticText
text="b"/>
</ui:tableColumn>
<ui:tableColumn id="col3c"
headerText="C"
footerText="ColFtrC"
sortIcon="ALARM_MINOR_MEDIUM"
tableFooterText="TblFtrC">
<ui:staticText
text="c"/>
</ui:tableColumn>
<ui:tableColumn id="col3d"
headerText="D"
footerText="ColFtrD"
sortIcon="ALARM_DOWN_MEDIUM"
tableFooterText="TblFtrD">
<ui:staticText
text="d"/>
</ui:tableColumn>
</ui:tableColumn>
</ui:tableRowGroup>
</ui:table>
faces_config.xml Entry for
Managed Beans
The examples use the TableBean
managed bean, which requires the following entry to be added to the faces_config.xml file.
<!DOCTYPE faces-config PUBLIC
'-//Sun Microsystems, Inc.//DTD JavaServer Faces
Config 1.0//EN'
'http://java.sun.com/dtd/web-facesconfig_1_1.dtd'>
<faces-config>
<managed-bean>
<description>The
backing bean for the table example</description>
<managed-bean-name>TableBean</managed-bean-name>
<managed-bean-class>table.TableBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
Auto-generated component class.
Do NOT modify; all changes
will be lost!
|
TableColumnBase | public TableColumnBase()(Code) | | Construct a new TableColumnBase .
|
getAbbr | public String getAbbr()(Code) | | An abbreviated version of the cell's content
|
getAlign | public String getAlign()(Code) | | Sets the horizontal alignment (left, right, justify, center) for the cell contents
|
getAlignKey | public Object getAlignKey()(Code) | | Use the alignKey attribute to specify the FieldKey id or FieldKey
to be used as an identifier for a specific data element on which to align the
table cell data in the column. If alignKey specifies a
FieldKey, the FieldKey is used as is; otherwise, a FieldKey is created using
the alignKey value that you specify. Alignment is based on
the object type of the data element. For example, Date and Number objects are
aligned "right", Character and String objects are aligned "left", and Boolean
objects are aligned "center". All columns, including select columns, are
aligned "left" by default. Note that the align property overrides this value.
|
getAxis | public String getAxis()(Code) | | Provides a method for categorizing cells
|
getColSpan | public int getColSpan()(Code) | | The number of columns spanned by a cell
|
getExtraFooterHtml | public String getExtraFooterHtml()(Code) | | Extra HTML code to be appended to the <td> HTML element that
is rendered for the column footer. Use only code that is valid in an HTML
<td> element. The code you specify is inserted in the HTML
element, and is not checked for validity. For example, you might set this
attribute to "nowrap=`nowrap'" .
|
getExtraHeaderHtml | public String getExtraHeaderHtml()(Code) | | Extra HTML code to be appended to the <th> HTML element that
is rendered for the column header. Use only code that is valid in an HTML
<td> element. The code you specify is inserted in the HTML
element, and is not checked for validity. For example, you might set this
attribute to "nowrap=`nowrap'" .
|
getExtraTableFooterHtml | public String getExtraTableFooterHtml()(Code) | | Extra HTML code to be appended to the <td> HTML element that
is rendered for the table column footer. Use only code that is valid in an HTML
<td> element. The code you specify is inserted in the HTML
element, and is not checked for validity. For example, you might set this
attribute to "nowrap=`nowrap'" .
|
getFamily | public String getFamily()(Code) | | Return the identifier of the component family to which this
component belongs. This identifier, in conjunction with the value
of the rendererType property, may be used to select
the appropriate
Renderer for this component instance.
|
getFooterText | public String getFooterText()(Code) | | The text to be displayed in the column footer.
|
getHeaderText | public String getHeaderText()(Code) | | The text to be displayed in the column header.
|
getHeaders | public String getHeaders()(Code) | | Space separated list of header cell ID values
|
getHeight | public String getHeight()(Code) | | Set the cell height in pixels (deprecated in HTML 4.0)
|
getOnClick | public String getOnClick()(Code) | | Scripting code executed when a mouse click
occurs over this component.
|
getOnDblClick | public String getOnDblClick()(Code) | | Scripting code executed when a mouse double click
occurs over this component.
|
getOnKeyDown | public String getOnKeyDown()(Code) | | Scripting code executed when the user presses down on a key while the
component has focus.
|
getOnKeyPress | public String getOnKeyPress()(Code) | | Scripting code executed when the user presses and releases a key while
the component has focus.
|
getOnKeyUp | public String getOnKeyUp()(Code) | | Scripting code executed when the user releases a key while the
component has focus.
|
getOnMouseDown | public String getOnMouseDown()(Code) | | Scripting code executed when the user presses a mouse button while the
mouse pointer is on the component.
|
getOnMouseMove | public String getOnMouseMove()(Code) | | Scripting code executed when the user moves the mouse pointer while
over the component.
|
getOnMouseOut | public String getOnMouseOut()(Code) | | Scripting code executed when a mouse out movement
occurs over this component.
|
getOnMouseOver | public String getOnMouseOver()(Code) | | Scripting code executed when the user moves the mouse pointer into
the boundary of this component.
|
getOnMouseUp | public String getOnMouseUp()(Code) | | Scripting code executed when the user releases a mouse button while
the mouse pointer is on the component.
|
getRowSpan | public int getRowSpan()(Code) | | The number of rows spanned by a cell
|
getScope | public String getScope()(Code) | | Indicates that information in a cell is also acting as a header
|
getSelectId | public String getSelectId()(Code) | | Use the selectId attribute in select columns, which contain
checkboxes or radio buttons for selecting table rows. The value of
selectId must match the id attribute of the checkbox
or radioButton component that is a child of the tableColumn component. A fully
qualified ID based on the tableColumn component ID and the
selectId for the current row will be dynamically created for the
<input> element that is rendered for the checkbox or radio
button. The selectId is required for functionality that supports
the toggle buttons for selecting rows. The selectId also
identifies the column as a select column, for which the table component
uses different CSS styles.
|
getSeverity | public String getSeverity()(Code) | | Use the severity attribute when including the ui:alarm
component in a column, to match the severity of the alarm. Valid values are
described in the ui:alarm documentation. When the
severity attribute is set in the tableColumn, the table
component renders sort tool tips to indicate that the column will be sorted
least/most severe first, and the table cell appears hightlighted according to
the level of severity. This functionality is overridden by the
emptyCell attribute.
|
getSort | public Object getSort()(Code) | | Use the sort attribute to specify a FieldKey id or SortCriteria
that defines the criteria to use for sorting the contents of a
TableDataProvider. If SortCriteria is provided, the object is used for sorting
as is. If an id is provided, a FieldIdSortCriteria is created for sorting. In
addition, a value binding can also be used to sort on an object that is
external to TableDataProvider, such as the selected state of a checkbox or
radiobutton. When a value binding is used, a ValueBindingSortCriteria object
is created for sorting. All sorting is based on the object type associated with
the data element (for example, Boolean, Character, Comparator, Date, Number,
and String). If the object type cannot be determined, the object is compared as
a String. The sort attribute is required for a column to be shown
as sortable.
|
getSortIcon | public String getSortIcon()(Code) | | The theme identifier to use for the sort button that is displayed in the column
header. Use this attribute to override the default image.
|
getSortImageURL | public String getSortImageURL()(Code) | | Absolute or relative URL to the image used for the sort button that is
displayed in the column header.
|
getStyle | public String getStyle()(Code) | | CSS style(s) to be applied when this component is rendered.
|
getStyleClass | public String getStyleClass()(Code) | | CSS style class(es) to be applied when this component is rendered.
|
getTableFooterText | public String getTableFooterText()(Code) | | The text to be displayed in the table column footer. The table column footer is
displayed once per table, and is especially useful in tables with multiple
groups of rows.
|
getToolTip | public String getToolTip()(Code) | | Display the text as a tooltip for this component
|
getValign | public String getValign()(Code) | | Vertical alignment (top, middle, bottom) for the content of each cell in the column
|
getWidth | public String getWidth()(Code) | | Set the width of the column in either pixels or percent(deprecated in HTML 4.0)
|
isDescending | public boolean isDescending()(Code) | | Use the descending attribute to specify that the first
user-applied sort is descending. By default, the first time a user clicks a
column's sort button or column header, the sort is ascending. Note that this
not an initial sort. The data is initially displayed unsorted.
|
isEmbeddedActions | public boolean isEmbeddedActions()(Code) | | Set the embeddedActions attribute to true when the column includes
more than one embedded action. This attribute causes a separator image to be
displayed between the action links. This attribute is overridden by the
emptyCell attribute.
|
isEmptyCell | public boolean isEmptyCell()(Code) | | Use the emptyCell attribute to cause a theme-specific image to be
displayed when the content of a table cell is not applicable or is unexpectedly
empty. You should not use this attribute for a value that is truly null, such
as an empty alarm cell or a comment field that is blank. In addition, the image
should not be used for cells that contain user interface elements such as
checkboxes or drop-down lists when these elements are not applicable. Instead,
the elements should simply not be displayed so the cell is left empty.
|
isNoWrap | public boolean isNoWrap()(Code) | | Disable word wrapping (deprecated in HTML 4.0)
|
isRowHeader | public boolean isRowHeader()(Code) | | Use the rowHeader attribute to specify that the cells of the
column are acting as row headers. Row headers are cells that "label" the row.
For example, consider a table where the first column contains checkboxes, and
the second column contains user names. The third and subsequent columns contain
attributes of those users. The content of the cells in the user name column are
acting as row headers. The ui:tableColumn tag for the user name
column should set the rowHeader attribute to true. If a table
contains, for example, a system log with time stamp and log entry columns,
neither column is acting as a row header, so the rowHeader
attribute should not be set.
By default, most column cells are rendered by the table component with HTML
<td scope="col"> elements. The exceptions are columns that
contain checkboxes or radio buttons and spacer columns, all of which are
rendered as <td> elements without a scope property.
When you set the rowHeader attribute, the column cells are
rendered as <th scope="row"> elements, which enables
adaptive technologies such as screen readers to properly read the table to
indicate that the contents of these cells are headers for the rows.
|
isSpacerColumn | public boolean isSpacerColumn()(Code) | | Use the spacerColumn attribute to use the column as a blank column
to enhance spacing in two or three column tables. When the
spacerColumn attribute is true, the CSS styles applied to the
column make it appear as if the columns are justified. If a column header and
footer are required, provide an empty string for the headerText
and footerText attributes. Set the width attribute to
justify columns accordingly.
|
isVisible | public boolean isVisible()(Code) | | Use the visible attribute to indicate whether the component should be
viewable by the user in the rendered HTML page. If set to false, the
HTML code for the component is present in the page, but the component
is hidden with style attributes. By default, visible is set to true, so
HTML for the component HTML is included and visible to the user. If the
component is not visible, it can still be processed on subsequent form
submissions because the HTML is present.
|
restoreState | public void restoreState(FacesContext _context, Object _state)(Code) | | Restore the state of this component.
|
saveState | public Object saveState(FacesContext _context)(Code) | | Save the state of this component.
|
setAlignKey | public void setAlignKey(Object alignKey)(Code) | | Use the alignKey attribute to specify the FieldKey id or FieldKey
to be used as an identifier for a specific data element on which to align the
table cell data in the column. If alignKey specifies a
FieldKey, the FieldKey is used as is; otherwise, a FieldKey is created using
the alignKey value that you specify. Alignment is based on
the object type of the data element. For example, Date and Number objects are
aligned "right", Character and String objects are aligned "left", and Boolean
objects are aligned "center". All columns, including select columns, are
aligned "left" by default. Note that the align property overrides this value.
See Also: TableColumnBase.getAlignKey() |
setDescending | public void setDescending(boolean descending)(Code) | | Use the descending attribute to specify that the first
user-applied sort is descending. By default, the first time a user clicks a
column's sort button or column header, the sort is ascending. Note that this
not an initial sort. The data is initially displayed unsorted.
See Also: TableColumnBase.isDescending() |
setEmbeddedActions | public void setEmbeddedActions(boolean embeddedActions)(Code) | | Set the embeddedActions attribute to true when the column includes
more than one embedded action. This attribute causes a separator image to be
displayed between the action links. This attribute is overridden by the
emptyCell attribute.
See Also: TableColumnBase.isEmbeddedActions() |
setEmptyCell | public void setEmptyCell(boolean emptyCell)(Code) | | Use the emptyCell attribute to cause a theme-specific image to be
displayed when the content of a table cell is not applicable or is unexpectedly
empty. You should not use this attribute for a value that is truly null, such
as an empty alarm cell or a comment field that is blank. In addition, the image
should not be used for cells that contain user interface elements such as
checkboxes or drop-down lists when these elements are not applicable. Instead,
the elements should simply not be displayed so the cell is left empty.
See Also: TableColumnBase.isEmptyCell() |
setExtraFooterHtml | public void setExtraFooterHtml(String extraFooterHtml)(Code) | | Extra HTML code to be appended to the <td> HTML element that
is rendered for the column footer. Use only code that is valid in an HTML
<td> element. The code you specify is inserted in the HTML
element, and is not checked for validity. For example, you might set this
attribute to "nowrap=`nowrap'" .
See Also: TableColumnBase.getExtraFooterHtml() |
setExtraHeaderHtml | public void setExtraHeaderHtml(String extraHeaderHtml)(Code) | | Extra HTML code to be appended to the <th> HTML element that
is rendered for the column header. Use only code that is valid in an HTML
<td> element. The code you specify is inserted in the HTML
element, and is not checked for validity. For example, you might set this
attribute to "nowrap=`nowrap'" .
See Also: TableColumnBase.getExtraHeaderHtml() |
setExtraTableFooterHtml | public void setExtraTableFooterHtml(String extraTableFooterHtml)(Code) | | Extra HTML code to be appended to the <td> HTML element that
is rendered for the table column footer. Use only code that is valid in an HTML
<td> element. The code you specify is inserted in the HTML
element, and is not checked for validity. For example, you might set this
attribute to "nowrap=`nowrap'" .
See Also: TableColumnBase.getExtraTableFooterHtml() |
setRowHeader | public void setRowHeader(boolean rowHeader)(Code) | | Use the rowHeader attribute to specify that the cells of the
column are acting as row headers. Row headers are cells that "label" the row.
For example, consider a table where the first column contains checkboxes, and
the second column contains user names. The third and subsequent columns contain
attributes of those users. The content of the cells in the user name column are
acting as row headers. The ui:tableColumn tag for the user name
column should set the rowHeader attribute to true. If a table
contains, for example, a system log with time stamp and log entry columns,
neither column is acting as a row header, so the rowHeader
attribute should not be set.
By default, most column cells are rendered by the table component with HTML
<td scope="col"> elements. The exceptions are columns that
contain checkboxes or radio buttons and spacer columns, all of which are
rendered as <td> elements without a scope property.
When you set the rowHeader attribute, the column cells are
rendered as <th scope="row"> elements, which enables
adaptive technologies such as screen readers to properly read the table to
indicate that the contents of these cells are headers for the rows.
See Also: TableColumnBase.isRowHeader() |
setSelectId | public void setSelectId(String selectId)(Code) | | Use the selectId attribute in select columns, which contain
checkboxes or radio buttons for selecting table rows. The value of
selectId must match the id attribute of the checkbox
or radioButton component that is a child of the tableColumn component. A fully
qualified ID based on the tableColumn component ID and the
selectId for the current row will be dynamically created for the
<input> element that is rendered for the checkbox or radio
button. The selectId is required for functionality that supports
the toggle buttons for selecting rows. The selectId also
identifies the column as a select column, for which the table component
uses different CSS styles.
See Also: TableColumnBase.getSelectId() |
setSeverity | public void setSeverity(String severity)(Code) | | Use the severity attribute when including the ui:alarm
component in a column, to match the severity of the alarm. Valid values are
described in the ui:alarm documentation. When the
severity attribute is set in the tableColumn, the table
component renders sort tool tips to indicate that the column will be sorted
least/most severe first, and the table cell appears hightlighted according to
the level of severity. This functionality is overridden by the
emptyCell attribute.
See Also: TableColumnBase.getSeverity() |
setSort | public void setSort(Object sort)(Code) | | Use the sort attribute to specify a FieldKey id or SortCriteria
that defines the criteria to use for sorting the contents of a
TableDataProvider. If SortCriteria is provided, the object is used for sorting
as is. If an id is provided, a FieldIdSortCriteria is created for sorting. In
addition, a value binding can also be used to sort on an object that is
external to TableDataProvider, such as the selected state of a checkbox or
radiobutton. When a value binding is used, a ValueBindingSortCriteria object
is created for sorting. All sorting is based on the object type associated with
the data element (for example, Boolean, Character, Comparator, Date, Number,
and String). If the object type cannot be determined, the object is compared as
a String. The sort attribute is required for a column to be shown
as sortable.
See Also: TableColumnBase.getSort() |
setSortIcon | public void setSortIcon(String sortIcon)(Code) | | The theme identifier to use for the sort button that is displayed in the column
header. Use this attribute to override the default image.
See Also: TableColumnBase.getSortIcon() |
setSpacerColumn | public void setSpacerColumn(boolean spacerColumn)(Code) | | Use the spacerColumn attribute to use the column as a blank column
to enhance spacing in two or three column tables. When the
spacerColumn attribute is true, the CSS styles applied to the
column make it appear as if the columns are justified. If a column header and
footer are required, provide an empty string for the headerText
and footerText attributes. Set the width attribute to
justify columns accordingly.
See Also: TableColumnBase.isSpacerColumn() |
setTableFooterText | public void setTableFooterText(String tableFooterText)(Code) | | The text to be displayed in the table column footer. The table column footer is
displayed once per table, and is especially useful in tables with multiple
groups of rows.
See Also: TableColumnBase.getTableFooterText() |
setVisible | public void setVisible(boolean visible)(Code) | | Use the visible attribute to indicate whether the component should be
viewable by the user in the rendered HTML page. If set to false, the
HTML code for the component is present in the page, but the component
is hidden with style attributes. By default, visible is set to true, so
HTML for the component HTML is included and visible to the user. If the
component is not visible, it can still be processed on subsequent form
submissions because the HTML is present.
See Also: TableColumnBase.isVisible() |
|
|