You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2017/10/20 21:21:17 UTC
wicket git commit: WICKET-6055 documented and code improvement
Repository: wicket
Updated Branches:
refs/heads/WICKET-6055-non-blocking-lazy cfb75dd64 -> 56ec02bee
WICKET-6055 documented and code improvement
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/56ec02be
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/56ec02be
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/56ec02be
Branch: refs/heads/WICKET-6055-non-blocking-lazy
Commit: 56ec02bee116d27e10456b58dd5056b764318424
Parents: cfb75dd
Author: Sven Meier <sv...@apache.org>
Authored: Fri Oct 20 23:20:18 2017 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Oct 20 23:20:18 2017 +0200
----------------------------------------------------------------------
.../apache/wicket/ajax/AbstractAjaxTimerBehavior.java | 2 ++
.../extensions/ajax/markup/html/AjaxLazyLoadPanel.java | 13 +++++++------
2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/56ec02be/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
index 10dbb9b..7fd3606 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
@@ -112,6 +112,8 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
@Override
protected final void respond(final AjaxRequestTarget target)
{
+ // onTimer might remove this behavior, so keep the component
+ // so the timeout can be cleared later on
Component component = getComponent();
if (shouldTrigger())
http://git-wip-us.apache.org/repos/asf/wicket/blob/56ec02be/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
index 01cef17..1b9b45e 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
@@ -136,25 +136,26 @@ public abstract class AjaxLazyLoadPanel<T extends Component> extends Panel
{
}
+ /**
+ * Installs a page-global timer if not already present.
+ */
@Override
protected void onInitialize()
{
super.onInitialize();
- AjaxRequestTarget target = getRequestCycle().find(AjaxRequestTarget.class).orElse(null);
-
- AjaxLazyLoadTimer timer;
// when the timer is not yet installed add it
List<AjaxLazyLoadTimer> behaviors = getPage().getBehaviors(AjaxLazyLoadTimer.class);
if (behaviors.isEmpty()) {
- timer = new AjaxLazyLoadTimer();
+ AjaxLazyLoadTimer timer = new AjaxLazyLoadTimer();
getPage().add(timer);
- if (target != null) {
+
+ getRequestCycle().find(AjaxRequestTarget.class).ifPresent(target -> {
// the timer will not be rendered, so stop it first
// and restart it immediately on the Ajax request
timer.stop(null);
timer.restart(target);
- }
+ });
}
}