You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2025/01/14 18:47:33 UTC
(myfaces-tobago) branch tobago-5.x updated: feat(sheet): Lazy update sends uneccessary column headers
This is an automated email from the ASF dual-hosted git repository.
bommel pushed a commit to branch tobago-5.x
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
The following commit(s) were added to refs/heads/tobago-5.x by this push:
new 560380d126 feat(sheet): Lazy update sends uneccessary column headers
560380d126 is described below
commit 560380d126b1996f13ba85b0f33db3da40e0d7d4
Author: Bernd Bohmann <bo...@apache.org>
AuthorDate: Sat Dec 21 18:33:21 2024 +0100
feat(sheet): Lazy update sends uneccessary column headers
issue: TOBAGO-2368
(cherry picked from commit 22667ddb657849c78d46b1631c9d3e222fa02d25)
---
.../internal/renderkit/renderer/SheetRenderer.java | 69 +++++++++++-----------
1 file changed, 36 insertions(+), 33 deletions(-)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java
index 4dbd144760..2dc9223ae5 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java
@@ -433,33 +433,35 @@ public class SheetRenderer<T extends AbstractUISheet> extends RendererBase<T> {
final boolean showHeader = sheet.isShowHeader();
final Markup sheetMarkup = sheet.getMarkup() != null ? sheet.getMarkup() : Markup.NULL;
- final UIComponent before = sheet.getFacet(Facets.BEFORE);
- if (before != null) {
- before.encodeAll(facesContext);
- }
-
- if (showHeader && !autoLayout) {
- // if no autoLayout, we render the header in a separate table.
- writer.startElement(HtmlElements.HEADER);
- writer.startElement(HtmlElements.TABLE);
- writer.writeAttribute(HtmlAttributes.CELLSPACING, "0", false);
- writer.writeAttribute(HtmlAttributes.CELLPADDING, "0", false);
- writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);
- writer.writeClassAttribute(
- BootstrapClass.TABLE,
- sheetMarkup.contains(Markup.DARK) ? BootstrapClass.TABLE_DARK : null,
- sheetMarkup.contains(Markup.BORDERED) ? BootstrapClass.TABLE_BORDERED : null,
- sheetMarkup.contains(Markup.SMALL) ? BootstrapClass.TABLE_SM : null,
- TobagoClass.TABLE_LAYOUT__FIXED);
+ boolean nonLazyUpdate = !sheet.isLazyUpdate(facesContext);
+ if (nonLazyUpdate) {
+ final UIComponent before = sheet.getFacet(Facets.BEFORE);
+ if (before != null) {
+ before.encodeAll(facesContext);
+ }
- writeColgroup(writer, columnWidths, columns, true);
- writer.startElement(HtmlElements.THEAD);
- encodeHeaderRows(facesContext, sheet, writer, columns);
- writer.endElement(HtmlElements.THEAD);
- writer.endElement(HtmlElements.TABLE);
- writer.endElement(HtmlElements.HEADER);
+ if (showHeader && !autoLayout) {
+ // if no autoLayout, we render the header in a separate table.
+ writer.startElement(HtmlElements.HEADER);
+ writer.startElement(HtmlElements.TABLE);
+ writer.writeAttribute(HtmlAttributes.CELLSPACING, "0", false);
+ writer.writeAttribute(HtmlAttributes.CELLPADDING, "0", false);
+ writer.writeAttribute(HtmlAttributes.SUMMARY, "", false);
+ writer.writeClassAttribute(
+ BootstrapClass.TABLE,
+ sheetMarkup.contains(Markup.DARK) ? BootstrapClass.TABLE_DARK : null,
+ sheetMarkup.contains(Markup.BORDERED) ? BootstrapClass.TABLE_BORDERED : null,
+ sheetMarkup.contains(Markup.SMALL) ? BootstrapClass.TABLE_SM : null,
+ TobagoClass.TABLE_LAYOUT__FIXED);
+
+ writeColgroup(writer, columnWidths, columns, true);
+ writer.startElement(HtmlElements.THEAD);
+ encodeHeaderRows(facesContext, sheet, writer, columns);
+ writer.endElement(HtmlElements.THEAD);
+ writer.endElement(HtmlElements.TABLE);
+ writer.endElement(HtmlElements.HEADER);
+ }
}
-
writer.startElement(HtmlElements.DIV);
writer.writeClassAttribute(TobagoClass.BODY);
@@ -476,19 +478,20 @@ public class SheetRenderer<T extends AbstractUISheet> extends RendererBase<T> {
sheetMarkup.contains(Markup.SMALL) ? BootstrapClass.TABLE_SM : null,
!autoLayout ? TobagoClass.TABLE_LAYOUT__FIXED : null);
- if (showHeader && autoLayout) {
- writer.startElement(HtmlElements.THEAD);
- encodeHeaderRows(facesContext, sheet, writer, columns);
- writer.endElement(HtmlElements.THEAD);
- }
- if (!autoLayout) {
- writeColgroup(writer, columnWidths, columns, false);
+ if (nonLazyUpdate) {
+ if (showHeader && autoLayout) {
+ writer.startElement(HtmlElements.THEAD);
+ encodeHeaderRows(facesContext, sheet, writer, columns);
+ writer.endElement(HtmlElements.THEAD);
+ }
+ if (!autoLayout) {
+ writeColgroup(writer, columnWidths, columns, false);
+ }
}
// Print the Content
if (LOG.isDebugEnabled()) {
LOG.debug("first = " + sheet.getFirst() + " rows = " + sheet.getRows());
}
-
writer.startElement(HtmlElements.TBODY);
final String var = sheet.getVar();