writer.writeAttribute(
HtmlAttributes.VALUE, StringUtils.joinWithSurroundingSeparator(selectedRows), true);
writer.endElement(HtmlElements.INPUT);
}
ExpandedState expandedState = null;
StringBuilder expandedValue = null;
if (sheet.isTreeModel()) {
expandedState = sheet.getExpandedState();
expandedValue = new StringBuilder(",");
}
final boolean showHeader = sheet.isShowHeader();
final boolean ie6SelectOneFix = showHeader
&& ClientProperties.getInstance(facesContext).getUserAgent().isMsie6()
&& ComponentUtils.findDescendant(sheet, UISelectOne.class) != null;
// BEGIN RENDER BODY CONTENT
final Style bodyStyle = new Style();
/*
bodyStyle.setPosition(Position.RELATIVE);
*/
Measure tableBodyWidth = sheet.getCurrentWidth().subtractNotNegative(getContentBorder(facesContext, sheet));
bodyStyle.setWidth(tableBodyWidth);
if (sheet.isPagingVisible()) {
sheetHeight = sheetHeight.subtract(footerHeight);
}
if (ie6SelectOneFix) {
bodyStyle.setTop(headerHeight);
}
if (showHeader) {
sheetHeight = sheetHeight.subtract(headerHeight);
}
bodyStyle.setHeight(sheetHeight);
if (showHeader) {
renderColumnHeaders(
facesContext, sheet, writer, resourceManager, contextPath, sheetId, renderedColumnList, tableBodyWidth);
}
writer.startElement(HtmlElements.DIV, null);
writer.writeIdAttribute(sheetId + ComponentUtils.SUB_SEPARATOR + "data_div");
writer.writeClassAttribute(Classes.create(sheet, "body"));
/*
bodyStyle.setPaddingTop(ie6SelectOneFix ? Measure.ZERO : headerHeight);
*/
writer.writeStyleAttribute(bodyStyle);
bodyStyle.setHeight(null);
bodyStyle.setTop(null);
final Style sheetBodyStyle = new Style(bodyStyle);
// is null, in AJAX case.
if (sheet.getNeedVerticalScrollbar() == Boolean.TRUE) {
tableBodyWidth = tableBodyWidth.subtractNotNegative(getVerticalScrollbarWeight(facesContext, sheet));
}
sheetBodyStyle.setWidth(tableBodyWidth);
writer.startElement(HtmlElements.TABLE, null);
writer.writeAttribute(HtmlAttributes.CELLSPACING, "0", false);
writer.writeAttribute(HtmlAttributes.CELLPADDING, "0", false);
writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);
writer.writeClassAttribute(Classes.create(sheet, "bodyTable"));
writer.writeStyleAttribute(sheetBodyStyle);
if (columnWidths != null) {
writer.startElement(HtmlElements.COLGROUP, null);
for (final Integer columnWidth : columnWidths) {
writer.startElement(HtmlElements.COL, null);
writer.writeAttribute(HtmlAttributes.WIDTH, columnWidth);
writer.endElement(HtmlElements.COL);
}
writer.endElement(HtmlElements.COLGROUP);
}
// Print the Content
if (LOG.isDebugEnabled()) {
LOG.debug("first = " + sheet.getFirst() + " rows = " + sheet.getRows());
}
final String var = sheet.getVar();
boolean odd = false;
boolean emptySheet = true;
// rows = 0 means: show all
final int last = sheet.isRowsUnlimited() ? Integer.MAX_VALUE : sheet.getFirst() + sheet.getRows();
for (int rowIndex = sheet.getFirst(); rowIndex < last; rowIndex++) {
sheet.setRowIndex(rowIndex);
if (!sheet.isRowAvailable()) {
break;
}
final Object rowRendered = sheet.getAttributes().get("rowRendered");
if (rowRendered instanceof Boolean && !((Boolean) rowRendered)) {
continue;
}
emptySheet = false;
odd = !odd;
if (LOG.isDebugEnabled()) {
LOG.debug("var " + var);
LOG.debug("list " + sheet.getValue());
}
if (sheet.isTreeModel()) {
final TreePath path = sheet.getPath();
if (sheet.isFolder() && expandedState.isExpanded(path)) {
expandedValue.append(rowIndex);
expandedValue.append(",");
}
}