}
@Override
public void encodeEnd(final FacesContext facesContext, final UIComponent uiComponent) throws IOException {
final UISheet sheet = (UISheet) uiComponent;
final Style style = new Style(facesContext, sheet);
final String sheetId = sheet.getClientId(facesContext);
final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
// Outer sheet div
writer.startElement(HtmlElements.DIV, sheet);
writer.writeIdAttribute(sheetId);
HtmlRendererUtils.writeDataAttributes(facesContext, writer, sheet);
writer.writeClassAttribute(Classes.create(sheet));
writer.writeStyleAttribute(style);
final UIComponent facetReload = sheet.getFacet(Facets.RELOAD);
if (facetReload != null && facetReload instanceof UIReload && facetReload.isRendered()) {
final UIReload update = (UIReload) facetReload;
writer.writeAttribute(DataAttributes.RELOAD, update.getFrequency());
}
writer.writeAttribute(DataAttributes.PARTIALLY,
HtmlRendererUtils.getRenderedPartiallyJavascriptArray(facesContext, sheet, sheet), false);
writer.writeAttribute(DataAttributes.SELECTION_MODE, sheet.getSelectable(), false);
writer.writeAttribute(DataAttributes.FIRST, Integer.toString(sheet.getFirst()), false);
final boolean rowAction = HtmlRendererUtils.renderSheetCommands(sheet, facesContext, writer);
renderSheet(facesContext, sheet, rowAction, style);