private void createHeaders(boolean isFooter) {
        TableSectionBuilder section =
                isFooter
                        ? footerBuilder.buildFooter()
                        : headerBuilder.buildHeader();
        if (section != null) {
            TABLE_IMPL.replaceAllRows(this,
                    isFooter
                            ? getTableFootElement()
                            : getTableHeadElement(),
                    tableSectionToSafeHtml(section,
                            isFooter
                                    ? "tfoot"
                                    : "thead"));
            doSetHeaderVisible(isFooter, true);
        } else {
            // If the section isn't used, hide it.
            doSetHeaderVisible(isFooter, false);
        }
    }
Render the header or footer.

@param isFooter true if this is the footer table, false if the header table
stroom-core-client-widget/src/main/java/com/google/gwt/user/cellview/client/AbstractCellTable.java