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/18 18:42:32 UTC
wicket git commit: WICKET-6479 do not send request when name has not
changed
Repository: wicket
Updated Branches:
refs/heads/master 49d398333 -> eb64b2af4
WICKET-6479 do not send request when name has not changed
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/eb64b2af
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/eb64b2af
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/eb64b2af
Branch: refs/heads/master
Commit: eb64b2af424f1492e60c6a2038c466878a855b01
Parents: 49d3983
Author: Sven Meier <sv...@apache.org>
Authored: Wed Oct 18 20:19:53 2017 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Wed Oct 18 20:22:04 2017 +0200
----------------------------------------------------------------------
.../ajax/AjaxNewWindowNotifyingBehavior.java | 27 ++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/eb64b2af/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
index 357120a..4f8cb06 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
@@ -20,6 +20,7 @@ import java.util.UUID;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnLoadHeaderItem;
@@ -49,6 +50,16 @@ public class AjaxNewWindowNotifyingBehavior extends AbstractDefaultAjaxBehavior
private String boundName;
/**
+ * Returns the window's name.
+ *
+ * @return name of {@value null} if not yet bound to a window
+ */
+ public String getWindowName()
+ {
+ return boundName;
+ }
+
+ /**
* Overridden to add the current window name to the request.
*/
@Override
@@ -58,6 +69,19 @@ public class AjaxNewWindowNotifyingBehavior extends AbstractDefaultAjaxBehavior
String parameter = "return {'" + PARAM_WINDOW_NAME + "': window.name}";
attributes.getDynamicExtraParameters().add(parameter);
+
+ if (boundName != null)
+ {
+ // already bound, send request only when changed
+ attributes.getAjaxCallListeners().add(new AjaxCallListener()
+ {
+ @Override
+ public CharSequence getPrecondition(Component component)
+ {
+ return String.format("return (window.name !== '%s');", boundName);
+ }
+ });
+ }
}
/**
@@ -75,8 +99,7 @@ public class AjaxNewWindowNotifyingBehavior extends AbstractDefaultAjaxBehavior
@Override
protected void respond(AjaxRequestTarget target)
{
- String windowName = getComponent().getRequest().getRequestParameters()
- .getParameterValue(PARAM_WINDOW_NAME).toString();
+ String windowName = getComponent().getRequest().getRequestParameters().getParameterValue(PARAM_WINDOW_NAME).toString();
if (boundName == null)
{