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 2023/12/15 11:39:01 UTC

(myfaces-tobago) branch main updated: fix(sheet): outside ajax request lazyUpdate should be transient handle lazyUpdate state in Event broadcast

This is an automated email from the ASF dual-hosted git repository.

bommel pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/main by this push:
     new 879f9e5eab fix(sheet): outside ajax request lazyUpdate should be transient handle lazyUpdate state in Event broadcast
879f9e5eab is described below

commit 879f9e5eabc3341acf73f970439501cc4cc299d4
Author: Bernd Bohmann <bo...@apache.org>
AuthorDate: Wed Dec 13 19:19:32 2023 +0100

    fix(sheet): outside ajax request
    lazyUpdate should be transient
    handle lazyUpdate state in Event broadcast
    
    Issue: TOBAGO-2267
---
 .../tobago/internal/component/AbstractUISheet.java | 29 ++++++++++++++--------
 .../internal/renderkit/renderer/SheetRenderer.java |  3 ---
 2 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
index ca0dccdfa3..1c2c8e4997 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISheet.java
@@ -80,11 +80,10 @@ public abstract class AbstractUISheet extends AbstractUIData
   public static final String SORTER_ID = "sorter";
   public static final String NOT_SORTABLE_COL_MESSAGE_ID = "org.apache.myfaces.tobago.UISheet.SORTING_COL";
   public static final String NOT_SORTABLE_MESSAGE_ID = "org.apache.myfaces.tobago.UISheet.SORTING";
-  private static final String LAZY_UPDATE = "isLazyUpdate";
-
   private SheetState state;
   private transient MeasureList columnLayout;
   private transient boolean autoLayout;
+  private transient boolean lazyUpdate;
 
   private transient Grid headerGrid;
 
@@ -510,13 +509,11 @@ public abstract class AbstractUISheet extends AbstractUIData
         first = getFirstRowIndexOfLastPage();
         break;
       case toRow:
+        first = getToRow(pageEvent);
+        break;
       case lazy:
-        first = pageEvent.getValue() - 1;
-        if (hasRowCount() && first > getFirstRowIndexOfLastPage()) {
-          first = getFirstRowIndexOfLastPage();
-        } else if (first < 0) {
-          first = 0;
-        }
+        first = getToRow(pageEvent);
+        setLazyUpdate(true);
         break;
       case toPage:
         final int pageIndex = pageEvent.getValue() - 1;
@@ -542,13 +539,23 @@ public abstract class AbstractUISheet extends AbstractUIData
     getState().setFirst(first);
   }
 
+  private int getToRow(PageActionEvent pageEvent) {
+    int first;
+    first = pageEvent.getValue() - 1;
+    if (hasRowCount() && first > getFirstRowIndexOfLastPage()) {
+      first = getFirstRowIndexOfLastPage();
+    } else if (first < 0) {
+      first = 0;
+    }
+    return first;
+  }
+
   public boolean getLazyUpdate() {
-    Object lazyUpdate = getStateHelper().get(LAZY_UPDATE);
-    return lazyUpdate != null && (boolean) lazyUpdate;
+    return lazyUpdate;
   }
 
   public void setLazyUpdate(boolean lazyUpdate) {
-    getStateHelper().put(LAZY_UPDATE, lazyUpdate);
+    this.lazyUpdate = lazyUpdate;
   }
 
   @Override
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 8d8e203ca4..f29d381d94 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
@@ -136,9 +136,6 @@ public class SheetRenderer<T extends AbstractUISheet> extends RendererBase<T> {
       ComponentUtils.setAttribute(component, Attributes.selectedListString, selectedRows);
     }
 
-    final String event = facesContext.getExternalContext().getRequestParameterMap().get("jakarta.faces.behavior.event");
-    component.setLazyUpdate("lazy".equals(event));
-
     final String value
         = facesContext.getExternalContext().getRequestParameterMap().get(clientId + SUFFIX_SCROLL_POSITION);
     if (value != null) {