Class HtmlTableRendererBase
- Direct Known Subclasses:
HtmlTableRenderer
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classClass manages the styles from String lists. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final StringFields inherited from class jakarta.faces.render.Renderer
PASSTHROUGH_RENDERER_LOCALNAME_KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidafterBody(FacesContext facesContext, UIData uiData) Perform any operations necessary immediately after the TBODY end tag is output.protected voidafterColumn(FacesContext facesContext, UIData uiData, int columnIndex) Perform any operations necessary immediately after each column child is renderedprotected voidafterColumnHeaderOrFooter(FacesContext facesContext, UIData uiData, boolean header, int columnIndex) Perform any operations necessary immediately after each column child's header of footer is renderedprotected voidafterRow(FacesContext facesContext, UIData uiData) Perform any operations necessary immediately after each TR end tag is output.protected voidafterTable(FacesContext facesContext, UIData uiData) Perform any operations necessary immediately after the TABLE end tag is output.protected voidbeforeBody(FacesContext facesContext, UIData uiData) Perform any operations necessary after TABLE start tag is output but before the TBODY start tag.protected voidbeforeColumn(FacesContext facesContext, UIData uiData, int columnIndex) Perform any operations necessary immediately before each column child is renderedprotected voidbeforeColumnHeaderOrFooter(FacesContext facesContext, UIData uiData, boolean header, int columnIndex) Perform any operations necessary immediately before each column child's header or footer is renderedprotected voidbeforeRow(FacesContext facesContext, UIData uiData) Perform any operations necessary immediately before each TR start tag is output.protected voidbeforeTable(FacesContext facesContext, UIData uiData) Perform any operations necessary immediately before the TABLE start tag is output.voiddecode(FacesContext context, UIComponent component) protected intdetermineChildColSpan(UIComponent uiComponent) Calculate the number of columns the specified child component will span when rendered.protected StringdetermineHeaderCellTag(FacesContext facesContext, UIComponent uiComponent) protected StringdetermineHeaderFooterTag(FacesContext facesContext, UIComponent component, boolean header) voidencodeBegin(FacesContext facesContext, UIComponent uiComponent) Render the necessary bits that come before any actual rows in the table.voidencodeChildren(FacesContext facesContext, UIComponent component) Render the TBODY section of the html table.protected voidencodeColumnChild(FacesContext facesContext, ResponseWriter writer, UIData uiData, UIComponent component, HtmlTableRendererBase.Styles styles, int columnStyleIndex) voidencodeEnd(FacesContext facesContext, UIComponent uiComponent) voidencodeInnerHtml(FacesContext facesContext, UIComponent component) Renders everything inside the TBODY tag by iterating over the row objects between offsets first and first+rows and applying the UIColumn components to those objects.protected voidendTable(FacesContext facesContext, UIComponent uiComponent) actually render the end of the tableprotected intgetColumnCountForComponent(FacesContext facesContext, UIData uiData, UIComponent child) Indicates the number of columns the component represents.protected static StringgetFooterClass(UIComponent component) Gets the footerClass attribute of the givenUIComponent.protected static StringgetHeaderClass(UIComponent component) Gets the headerClass attribute of the givenUIComponent.protected intgetNewspaperColumns(UIComponent component) protected UIComponentgetNewspaperTableSpacer(UIComponent component) booleanprotected static HtmlTableRendererBase.StylesGets styles for the specified component.protected booleanhasFacet(boolean header, UIComponent uiComponent) protected booleanhasNewspaperTableSpacer(UIComponent component) protected voidinBodyStart(FacesContext facesContext, UIData uiData) Perform any operations necessary in the TBODY start tag.protected booleanisNewspaperHorizontalOrientation(UIComponent component) protected voidrenderCaptionFacet(FacesContext facesContext, ResponseWriter writer, UIComponent component) Renders the caption facet.protected voidrenderColgroupsFacet(FacesContext facesContext, ResponseWriter writer, UIComponent component) Renders the colgroups facet.protected voidrenderColumnBody(FacesContext facesContext, ResponseWriter writer, UIData uiData, UIComponent component, HtmlTableRendererBase.Styles styles, int columnStyleIndex) Renders the body of a givenUIColumn(everything but the header and footer facets).protected voidrenderColumnChildHeaderOrFooterRow(FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent, String styleClass, boolean isHeader) protected voidrenderColumnFooterCell(FacesContext facesContext, ResponseWriter writer, UIColumn uiColumn, String footerStyleClass, int colspan) Renders the footer facet for the givenUIColumn.protected voidrenderColumnFooterCell(FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent, UIComponent facet, String footerStyleClass, int colspan) Renders the footer facet for the givenUIColumn.protected voidrenderColumnFooterRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, String footerStyleClass) Renders the footer row for the columns, which is a separate row from the footer row for theUIDatafooter facet.protected voidrenderColumnHeaderCell(FacesContext facesContext, ResponseWriter writer, UIColumn uiColumn, String headerStyleClass, int colspan) Renders the header facet for the givenUIColumn.protected voidrenderColumnHeaderCell(FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent, UIComponent facet, String headerStyleClass, int colspan) Renders a TH cell within a TR within a THEAD section.protected voidrenderColumnHeaderRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, String headerStyleClass) Renders the header row for the columns, which is a separate row from the header row for theUIDataheader facet.protected voidrenderFacet(FacesContext facesContext, ResponseWriter writer, UIComponent component, boolean header) Renders either the header or the footer facets for the UIData component and all the child UIColumn components, as a THEAD or TFOOT element containing TR (row) elements.protected voidrenderRowEnd(FacesContext facesContext, ResponseWriter writer, UIData uiData) Renders the end of a row of body content.protected voidrenderRowStart(FacesContext facesContext, ResponseWriter writer, UIData uiData, HtmlTableRendererBase.Styles styles, int rowStyleIndex) Renders the start of a new row of body content.protected voidrenderRowStyle(FacesContext facesContext, ResponseWriter writer, UIData uiData, HtmlTableRendererBase.Styles styles, int rowStyleIndex) protected voidrenderSpacerCell(FacesContext facesContext, ResponseWriter writer, UIComponent component) Renders a spacer between adjacent newspaper columns.protected voidrenderTableFooterRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, UIComponent footerFacet, String footerStyleClass, int colspan) Renders the footer row of the table being rendered.protected voidrenderTableHeaderOrFooterRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, UIComponent facet, String styleClass, String colElementName, int colspan, boolean isHeader) protected voidrenderTableHeaderRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, UIComponent headerFacet, String headerStyleClass, int colspan) Renders the header row of the table being rendered.protected voidstartTable(FacesContext facesContext, UIComponent uiComponent) actually render the start of the tableMethods inherited from class org.apache.myfaces.renderkit.html.base.HtmlRenderer
getActionUrl, getChildCount, getChildren, getClientId, isCommonEventsOptimizationEnabled, isCommonPropertiesOptimizationEnabled, renderId, shouldRenderIdMethods inherited from class jakarta.faces.render.Renderer
convertClientId, getConvertedValue
-
Field Details
-
HEADER_FACET_NAME
- See Also:
-
FOOTER_FACET_NAME
- See Also:
-
CAPTION_FACET_NAME
- See Also:
-
-
Constructor Details
-
HtmlTableRendererBase
public HtmlTableRendererBase()
-
-
Method Details
-
getNewspaperColumns
- Parameters:
component- dataTable- Returns:
- number of layout columns
-
getNewspaperTableSpacer
- Parameters:
component- dataTable- Returns:
- component to display between layout columns
-
hasNewspaperTableSpacer
- Parameters:
component- dataTable- Returns:
- whether dataTable has component to display between layout columns
-
isNewspaperHorizontalOrientation
- Parameters:
component- dataTable- Returns:
- whether dataTable has newspaper columns layed out horizontally
-
getRendersChildren
public boolean getRendersChildren()- Overrides:
getRendersChildrenin classRenderer
-
encodeBegin
Render the necessary bits that come before any actual rows in the table.- Overrides:
encodeBeginin classRenderer- Throws:
IOException- See Also:
-
startTable
actually render the start of the table- Throws:
IOException
-
encodeChildren
Render the TBODY section of the html table. See also method encodeInnerHtml.- Overrides:
encodeChildrenin classRenderer- Throws:
IOException- See Also:
-
renderCaptionFacet
protected void renderCaptionFacet(FacesContext facesContext, ResponseWriter writer, UIComponent component) throws IOException Renders the caption facet.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.component- the parentUIComponentcontaining the facets.- Throws:
IOException- if an exception occurs.
-
renderColgroupsFacet
protected void renderColgroupsFacet(FacesContext facesContext, ResponseWriter writer, UIComponent component) throws IOException Renders the colgroups facet.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.component- the parentUIComponentcontaining the facets.- Throws:
IOException- if an exception occurs.- Since:
- 2.0
-
getStyles
Gets styles for the specified component. -
encodeInnerHtml
Renders everything inside the TBODY tag by iterating over the row objects between offsets first and first+rows and applying the UIColumn components to those objects.This method is separated from the encodeChildren so that it can be overridden by subclasses. One class that uses this functionality is autoUpdateDataTable.
- Throws:
IOException
-
encodeColumnChild
protected void encodeColumnChild(FacesContext facesContext, ResponseWriter writer, UIData uiData, UIComponent component, HtmlTableRendererBase.Styles styles, int columnStyleIndex) throws IOException - Throws:
IOException
-
renderColumnBody
protected void renderColumnBody(FacesContext facesContext, ResponseWriter writer, UIData uiData, UIComponent component, HtmlTableRendererBase.Styles styles, int columnStyleIndex) throws IOException Renders the body of a givenUIColumn(everything but the header and footer facets). This emits a TD cell, whose contents are the result of calling encodeBegin, encodeChildren and encodeEnd methods on the component (or its associated renderer).- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.uiData- theUIDatabeing rendered.component- theUIComponentto render.- Throws:
IOException- if an exception occurs.
-
renderRowStart
protected void renderRowStart(FacesContext facesContext, ResponseWriter writer, UIData uiData, HtmlTableRendererBase.Styles styles, int rowStyleIndex) throws IOException Renders the start of a new row of body content.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.uiData- theUIDatabeing rendered.- Throws:
IOException- if an exceptoin occurs.
-
renderRowStyle
protected void renderRowStyle(FacesContext facesContext, ResponseWriter writer, UIData uiData, HtmlTableRendererBase.Styles styles, int rowStyleIndex) throws IOException - Throws:
IOException
-
renderRowEnd
protected void renderRowEnd(FacesContext facesContext, ResponseWriter writer, UIData uiData) throws IOException Renders the end of a row of body content.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.uiData- theUIDatabeing rendered.- Throws:
IOException- if an exceptoin occurs.
-
beforeTable
Perform any operations necessary immediately before the TABLE start tag is output.- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
beforeBody
Perform any operations necessary after TABLE start tag is output but before the TBODY start tag.This method generates the THEAD/TFOOT sections of a table if there are any header or footer facets defined on the table or on any child UIColumn component.
- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
beforeRow
Perform any operations necessary immediately before each TR start tag is output.- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
afterRow
Perform any operations necessary immediately after each TR end tag is output.- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
beforeColumn
protected void beforeColumn(FacesContext facesContext, UIData uiData, int columnIndex) throws IOException Perform any operations necessary immediately before each column child is rendered- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.columnIndex- the index of the currenly rendered column- Throws:
IOException
-
afterColumn
protected void afterColumn(FacesContext facesContext, UIData uiData, int columnIndex) throws IOException Perform any operations necessary immediately after each column child is rendered- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.columnIndex- the index of the currenly rendered column- Throws:
IOException
-
getColumnCountForComponent
protected int getColumnCountForComponent(FacesContext facesContext, UIData uiData, UIComponent child) Indicates the number of columns the component represents. By default each UIColumn instance is 1 column- Parameters:
facesContext-uiData-child-- Returns:
-
inBodyStart
Perform any operations necessary in the TBODY start tag.- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
afterBody
Perform any operations necessary immediately after the TBODY end tag is output.- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
afterTable
Perform any operations necessary immediately after the TABLE end tag is output.- Parameters:
facesContext- theFacesContext.uiData- theUIDatabeing rendered.- Throws:
IOException
-
encodeEnd
- Overrides:
encodeEndin classRenderer- Throws:
IOException- See Also:
-
endTable
actually render the end of the table- Throws:
IOException
-
renderFacet
protected void renderFacet(FacesContext facesContext, ResponseWriter writer, UIComponent component, boolean header) throws IOException Renders either the header or the footer facets for the UIData component and all the child UIColumn components, as a THEAD or TFOOT element containing TR (row) elements.If there is a header or footer attached to the UIData then that is rendered as a TR element whose COLSPAN is the sum of all rendered columns in the table. This allows that header/footer to take up the entire width of the table.
If any child column has a header or footer then a TR is rendered with a TH cell for each column child.
- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.component- the UIData componentheader- whether this is the header facet (if not, then the footer facet).- Throws:
IOException- if an exception occurs.
-
hasFacet
- Parameters:
header-uiComponent-- Returns:
- boolean
-
determineChildColSpan
Calculate the number of columns the specified child component will span when rendered.Normally, this is a fairly simple calculation: a UIColumn component is rendered as one column, every other child type is not rendered (ie spans zero columns). However custom subclasses of this renderer may override this method to handle cases where a single component renders as multiple columns.
-
renderTableHeaderRow
protected void renderTableHeaderRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, UIComponent headerFacet, String headerStyleClass, int colspan) throws IOException Renders the header row of the table being rendered.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.component- theUIComponentfor whom a table is being rendered.headerFacet- the facet for the header.headerStyleClass- the styleClass of the header.colspan- the number of columns the header should span. Typically, this is the number of columns in the table.- Throws:
IOException- if an exception occurs.
-
renderColumnHeaderRow
protected void renderColumnHeaderRow(FacesContext facesContext, ResponseWriter writer, UIComponent component, String headerStyleClass) throws IOException Renders the header row for the columns, which is a separate row from the header row for theUIDataheader facet.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.component- the UIData component for whom a table is being rendered.headerStyleClass- the styleClass of the header- Throws:
IOException- if an exception occurs.
-
renderSpacerCell
protected void renderSpacerCell(FacesContext facesContext, ResponseWriter writer, UIComponent component) throws IOException Renders a spacer between adjacent newspaper columns.- Throws:
IOException
-
renderColumnHeaderCell
protected void renderColumnHeaderCell(FacesContext facesContext, ResponseWriter writer, UIColumn uiColumn, String headerStyleClass, int colspan) throws IOException Renders the header facet for the givenUIColumn.- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.uiColumn- theUIColumn.headerStyleClass- the styleClass of the header facet.colspan- the colspan for the tableData element in which the header facet will be wrapped.- Throws:
IOException
-
renderColumnHeaderCell
protected void renderColumnHeaderCell(FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent, UIComponent facet, String headerStyleClass, int colspan) throws IOException Renders a TH cell within a TR within a THEAD section. If the specified UIColumn object does have a header facet, then that facet is rendered within the cell, otherwise the cell is left blank (though any specified style class is still applied to empty cells).- Parameters:
facesContext- theFacesContext.writer- theResponseWriter.uiComponent- theUIComponentto render the facet for.facet- theUIComponentto render as facet.headerStyleClass- the styleClass of the header facet.colspan- the colspan for the tableData element in which the header facet will be wrapped.- Throws:
IOException
-
determineHeaderCellTag
-
getHeaderClass
Gets the headerClass attribute of the givenUIComponent.- Parameters:
component- theUIComponent.- Returns:
- the headerClass attribute of the given
UIComponent.
-
decode
-