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) {