in tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java [230:295]
public void encodeBeginInternal(final FacesContext facesContext, final T component) throws IOException {
final String sheetId = component.getClientId(facesContext);
final Markup markup = component.getMarkup();
final TobagoResponseWriter writer = getResponseWriter(facesContext);
final AbstractUIReload reload = ComponentUtils.getReloadFacet(component);
UIComponent header = component.getHeader();
if (header == null) {
header = ComponentUtils.createComponent(facesContext, Tags.panel.componentType(), null, "_header");
header.setTransient(true);
final List<AbstractUIColumnBase> columns = component.getAllColumns();
int i = 0;
for (final AbstractUIColumnBase column : columns) {
if (!(column instanceof AbstractUIRow)) {
final AbstractUIOut out = (AbstractUIOut) ComponentUtils.createComponent(
facesContext, Tags.out.componentType(), RendererTypes.Out, "_col" + i);
// out.setValue(column.getLabel());
out.setTransient(true);
ValueExpression valueExpression = column.getValueExpression(Attributes.label.getName());
if (valueExpression != null) {
out.setValueExpression(Attributes.value.getName(), valueExpression);
} else {
out.setValue(ComponentUtils.getAttribute(column, Attributes.label));
}
valueExpression = column.getValueExpression(Attributes.rendered.getName());
if (valueExpression != null) {
out.setValueExpression(Attributes.rendered.getName(), valueExpression);
} else {
out.setRendered(ComponentUtils.getBooleanAttribute(column, Attributes.rendered));
}
out.setLabelLayout(LabelLayout.skip);
header.getChildren().add(out);
}
i++;
}
component.setHeader(header);
}
component.init(facesContext);
// Outer sheet div
insideBegin(facesContext, HtmlElements.TOBAGO_SHEET);
writer.startElement(HtmlElements.TOBAGO_SHEET);
writer.writeIdAttribute(sheetId);
HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
writer.writeClassAttribute(
component.getCustomClass(),
markup != null && markup.contains(Markup.SPREAD) ? TobagoClass.SPREAD : null);
writer.writeAttribute(DataAttributes.SELECTION_MODE, component.getSelectable().name(), false);
writer.writeAttribute(DataAttributes.FIRST, Integer.toString(component.getFirst()), false);
writer.writeAttribute(CustomAttributes.ROWS, component.getRows());
writer.writeAttribute(CustomAttributes.ROW_COUNT, Integer.toString(component.getRowCount()), false);
writer.writeAttribute(CustomAttributes.LAZY, component.isLazy());
writer.writeAttribute(CustomAttributes.LAZY_UPDATE, component.isLazy() && AjaxUtils.isAjaxRequest(facesContext));
final boolean autoLayout = component.isAutoLayout();
if (!autoLayout) {
writer.writeAttribute(DataAttributes.LAYOUT, JsonUtils.encode(component.getColumnLayout(), "columns"), true);
}
encodeBehavior(writer, facesContext, component);
if (reload != null) {
reload.encodeAll(facesContext);
}
}