private SafeHtml buildRowValues(List<T> values, int start, boolean isRebuildingAllRows) {
        int length = values.size();
        int end = start + length;
        tableBuilder.start(isRebuildingAllRows);
        for (int i = start; i < end; i++) {
            T value = values.get(i - start);
            tableBuilder.buildRow(value, i);
        }

        // Update the properties of the table.
        coalesceCellProperties();
        TableSectionBuilder tableSectionBuilder = tableBuilder.finish();
        return tableSectionToSafeHtml(tableSectionBuilder, "tbody");
    }
Build a list of row values.

@param values              the row values to render
@param start               the absolute start index
@param isRebuildingAllRows is this going to rebuild all rows
@return a {@link SafeHtml} string containing the row values
stroom-core-client-widget/src/main/java/com/google/gwt/user/cellview/client/AbstractCellTable.java