You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by so...@apache.org on 2018/01/26 04:50:36 UTC
wicket git commit: [WICKET-6523] unique suffix is added if more than
1 timer behaviour is added for the component
Repository: wicket
Updated Branches:
refs/heads/WICKET-6523-unique-timer-id [created] edb8c370a
[WICKET-6523] unique suffix is added if more than 1 timer behaviour is added for the component
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/edb8c370
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/edb8c370
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/edb8c370
Branch: refs/heads/WICKET-6523-unique-timer-id
Commit: edb8c370a6989cbfdc1ca53b382a8e1caea3e103
Parents: 1d20044
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Fri Jan 26 11:50:19 2018 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Fri Jan 26 11:50:19 2018 +0700
----------------------------------------------------------------------
.../wicket/ajax/AbstractAjaxTimerBehavior.java | 36 ++++++++++++++++++--
1 file changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/edb8c370/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 7fd3606..2fc9959 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
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.ajax;
+import java.util.List;
+
import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -44,6 +46,7 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
private Duration updateInterval;
private boolean stopped = false;
+ private String timerId = null;
/**
* Construct.
@@ -93,6 +96,35 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
}
/**
+ * Can be overridden to provide different implementation
+ *
+ * @return the unique ID of JS timer
+ */
+ protected CharSequence createTimerId()
+ {
+ StringBuilder jsId = new StringBuilder(getComponent().getMarkupId());
+ List<AbstractAjaxTimerBehavior> list = getComponent().getBehaviors(AbstractAjaxTimerBehavior.class);
+ if (list.size() != 1)
+ {
+ for (int i = 0; i < list.size(); ++i)
+ {
+ if (list.get(i) == this)
+ {
+ jsId.append('_').append(i);
+ }
+ }
+ }
+ return jsId;
+ }
+
+ private final String getTimerId() {
+ if (timerId == null) {
+ timerId = createTimerId().toString();
+ }
+ return timerId;
+ }
+
+ /**
* @param updateInterval
* Duration between AJAX callbacks
* @return JS script
@@ -102,7 +134,7 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
CharSequence js = getCallbackScript();
return String.format("Wicket.Timer.set('%s', function(){%s}, %d);",
- getComponent().getMarkupId(), js, updateInterval.getMilliseconds());
+ getTimerId(), js, updateInterval.getMilliseconds());
}
/**
@@ -187,7 +219,7 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
private void clearTimeout(Component component, IHeaderResponse headerResponse)
{
- headerResponse.render(OnLoadHeaderItem.forScript("Wicket.Timer.clear('" + component.getMarkupId() + "');"));
+ headerResponse.render(OnLoadHeaderItem.forScript("Wicket.Timer.clear('" + getTimerId() + "');"));
}
/**