Class HtmlTableRendererBase

  • Direct Known Subclasses:
    HtmlTableRenderer

    public class HtmlTableRendererBase
    extends HtmlRenderer
    Common methods for renderers for components that subclass the standard Faces HtmlDataTable component.
    • Constructor Detail

      • HtmlTableRendererBase

        public HtmlTableRendererBase()
    • Method Detail

      • getNewspaperColumns

        protected int getNewspaperColumns​(UIComponent component)
        Parameters:
        component - dataTable
        Returns:
        number of layout columns
      • getNewspaperTableSpacer

        protected UIComponent getNewspaperTableSpacer​(UIComponent component)
        Parameters:
        component - dataTable
        Returns:
        component to display between layout columns
      • hasNewspaperTableSpacer

        protected boolean hasNewspaperTableSpacer​(UIComponent component)
        Parameters:
        component - dataTable
        Returns:
        whether dataTable has component to display between layout columns
      • isNewspaperHorizontalOrientation

        protected boolean isNewspaperHorizontalOrientation​(UIComponent component)
        Parameters:
        component - dataTable
        Returns:
        whether dataTable has newspaper columns layed out horizontally
      • renderCaptionFacet

        protected void renderCaptionFacet​(FacesContext facesContext,
                                          ResponseWriter writer,
                                          UIComponent component)
                                   throws IOException
        Renders the caption facet.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        component - the parent UIComponent containing 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 - the FacesContext.
        writer - the ResponseWriter.
        component - the parent UIComponent containing the facets.
        Throws:
        IOException - if an exception occurs.
        Since:
        2.0
      • encodeInnerHtml

        public void encodeInnerHtml​(FacesContext facesContext,
                                    UIComponent component)
                             throws IOException
        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
      • renderColumnBody

        protected void renderColumnBody​(FacesContext facesContext,
                                        ResponseWriter writer,
                                        UIData uiData,
                                        UIComponent component,
                                        HtmlTableRendererBase.Styles styles,
                                        int columnStyleIndex)
                                 throws IOException
        Renders the body of a given UIColumn (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 - the FacesContext.
        writer - the ResponseWriter.
        uiData - the UIData being rendered.
        component - the UIComponent to render.
        Throws:
        IOException - if an exception occurs.
      • renderRowEnd

        protected void renderRowEnd​(FacesContext facesContext,
                                    ResponseWriter writer,
                                    UIData uiData)
                             throws IOException
        Renders the end of a row of body content.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        uiData - the UIData being rendered.
        Throws:
        IOException - if an exceptoin occurs.
      • beforeTable

        protected void beforeTable​(FacesContext facesContext,
                                   UIData uiData)
                            throws IOException
        Perform any operations necessary immediately before the TABLE start tag is output.
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        Throws:
        IOException
      • beforeBody

        protected void beforeBody​(FacesContext facesContext,
                                  UIData uiData)
                           throws IOException
        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 - the FacesContext.
        uiData - the UIData being rendered.
        Throws:
        IOException
      • beforeRow

        protected void beforeRow​(FacesContext facesContext,
                                 UIData uiData)
                          throws IOException
        Perform any operations necessary immediately before each TR start tag is output.
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        Throws:
        IOException
      • afterRow

        protected void afterRow​(FacesContext facesContext,
                                UIData uiData)
                         throws IOException
        Perform any operations necessary immediately after each TR end tag is output.
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being 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 - the FacesContext.
        uiData - the UIData being 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 - the FacesContext.
        uiData - the UIData being 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:
      • beforeColumnHeaderOrFooter

        protected void beforeColumnHeaderOrFooter​(FacesContext facesContext,
                                                  UIData uiData,
                                                  boolean header,
                                                  int columnIndex)
                                           throws IOException
        Perform any operations necessary immediately before each column child's header or footer is rendered
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        header - true if the header of the column child is rendered
        columnIndex - the index of the currenly rendered column
        Throws:
        IOException
      • afterColumnHeaderOrFooter

        protected void afterColumnHeaderOrFooter​(FacesContext facesContext,
                                                 UIData uiData,
                                                 boolean header,
                                                 int columnIndex)
                                          throws IOException
        Perform any operations necessary immediately after each column child's header of footer is rendered
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        header - true if the header of the column child is rendered
        columnIndex - the index of the currenly rendered column
        Throws:
        IOException
      • inBodyStart

        protected void inBodyStart​(FacesContext facesContext,
                                   UIData uiData)
                            throws IOException
        Perform any operations necessary in the TBODY start tag.
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        Throws:
        IOException
      • afterBody

        protected void afterBody​(FacesContext facesContext,
                                 UIData uiData)
                          throws IOException
        Perform any operations necessary immediately after the TBODY end tag is output.
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        Throws:
        IOException
      • afterTable

        protected void afterTable​(FacesContext facesContext,
                                  UIData uiData)
                           throws IOException
        Perform any operations necessary immediately after the TABLE end tag is output.
        Parameters:
        facesContext - the FacesContext.
        uiData - the UIData being rendered.
        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 - the FacesContext.
        writer - the ResponseWriter.
        component - the UIData component
        header - whether this is the header facet (if not, then the footer facet).
        Throws:
        IOException - if an exception occurs.
      • hasFacet

        protected boolean hasFacet​(boolean header,
                                   UIComponent uiComponent)
        Parameters:
        header -
        uiComponent -
        Returns:
        boolean
      • determineChildColSpan

        protected int determineChildColSpan​(UIComponent uiComponent)
        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 - the FacesContext.
        writer - the ResponseWriter.
        component - the UIComponent for 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.
      • renderTableFooterRow

        protected void renderTableFooterRow​(FacesContext facesContext,
                                            ResponseWriter writer,
                                            UIComponent component,
                                            UIComponent footerFacet,
                                            String footerStyleClass,
                                            int colspan)
                                     throws IOException
        Renders the footer row of the table being rendered.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        component - the UIComponent for whom a table is being rendered.
        footerFacet - the facet for the footer.
        footerStyleClass - the styleClass of the footer.
        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 the UIData header facet.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        component - the UIData component for whom a table is being rendered.
        headerStyleClass - the styleClass of the header
        Throws:
        IOException - if an exception occurs.
      • renderColumnFooterRow

        protected void renderColumnFooterRow​(FacesContext facesContext,
                                             ResponseWriter writer,
                                             UIComponent component,
                                             String footerStyleClass)
                                      throws IOException
        Renders the footer row for the columns, which is a separate row from the footer row for the UIData footer facet.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        component - the UIComponent for whom a table is being rendered.
        footerStyleClass - the styleClass of the footerStyleClass
        Throws:
        IOException - if an exception occurs.
      • renderColumnHeaderCell

        protected void renderColumnHeaderCell​(FacesContext facesContext,
                                              ResponseWriter writer,
                                              UIColumn uiColumn,
                                              String headerStyleClass,
                                              int colspan)
                                       throws IOException
        Renders the header facet for the given UIColumn.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        uiColumn - the UIColumn.
        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 - the FacesContext.
        writer - the ResponseWriter.
        uiComponent - the UIComponent to render the facet for.
        facet - the UIComponent to 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
      • renderColumnFooterCell

        protected void renderColumnFooterCell​(FacesContext facesContext,
                                              ResponseWriter writer,
                                              UIColumn uiColumn,
                                              String footerStyleClass,
                                              int colspan)
                                       throws IOException
        Renders the footer facet for the given UIColumn.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        uiColumn - the UIComponent.
        footerStyleClass - the styleClass of the footer facet.
        colspan - the colspan for the tableData element in which the footer facet will be wrapped.
        Throws:
        IOException
      • renderColumnFooterCell

        protected void renderColumnFooterCell​(FacesContext facesContext,
                                              ResponseWriter writer,
                                              UIComponent uiComponent,
                                              UIComponent facet,
                                              String footerStyleClass,
                                              int colspan)
                                       throws IOException
        Renders the footer facet for the given UIColumn.
        Parameters:
        facesContext - the FacesContext.
        writer - the ResponseWriter.
        uiComponent - the UIComponent to render the facet for.
        facet - the UIComponent to render as facet.
        footerStyleClass - the styleClass of the footer facet.
        colspan - the colspan for the tableData element in which the footer facet will be wrapped.
        Throws:
        IOException
      • getHeaderClass

        protected static String getHeaderClass​(UIComponent component)
        Gets the headerClass attribute of the given UIComponent.
        Parameters:
        component - the UIComponent.
        Returns:
        the headerClass attribute of the given UIComponent.
      • getFooterClass

        protected static String getFooterClass​(UIComponent component)
        Gets the footerClass attribute of the given UIComponent.
        Parameters:
        component - the UIComponent.
        Returns:
        the footerClass attribute of the given UIComponent.