Updated Branches: refs/heads/master 017961387 -> 217fbb3bf
WICKET-5082 ensure consistent JavaScript ordering with Wicket's IHeaderRenderStrategy for Ajax responses and removing special handling of Ajax response in AjaxEventBehavior, i.e. not calling appendJavaScript() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/217fbb3b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/217fbb3b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/217fbb3b Branch: refs/heads/master Commit: 217fbb3bf370fc2e41dcf78f23ba83b24c82492a Parents: 0179613 Author: svenmeier <[email protected]> Authored: Thu Mar 7 20:30:42 2013 +0100 Committer: svenmeier <[email protected]> Committed: Thu Mar 7 20:30:42 2013 +0100 ---------------------------------------------------------------------- .../apache/wicket/ajax/AbstractAjaxResponse.java | 28 ++------------ .../org/apache/wicket/ajax/AjaxEventBehavior.java | 10 +----- .../ajax/DomReadyOrderPage_ajax_expected.html | 2 +- 3 files changed, 6 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/217fbb3b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java index 80624bf..1e3cd1a 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import org.apache.wicket.Component; -import org.apache.wicket.MarkupContainer; import org.apache.wicket.Page; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; @@ -34,6 +33,8 @@ import org.apache.wicket.markup.head.OnLoadHeaderItem; import org.apache.wicket.markup.head.internal.HeaderResponse; import org.apache.wicket.markup.html.internal.HtmlHeaderContainer; import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler; +import org.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy; +import org.apache.wicket.markup.renderStrategy.IHeaderRenderStrategy; import org.apache.wicket.markup.repeater.AbstractRepeater; import org.apache.wicket.request.IRequestCycle; import org.apache.wicket.request.Response; @@ -44,8 +45,6 @@ import org.apache.wicket.util.lang.Classes; import org.apache.wicket.util.lang.Generics; import org.apache.wicket.util.string.AppendingStringBuffer; import org.apache.wicket.util.string.Strings; -import org.apache.wicket.util.visit.IVisit; -import org.apache.wicket.util.visit.IVisitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -460,28 +459,9 @@ public abstract class AbstractAjaxResponse try { encodingHeaderResponse.reset(); - // render the head of component and all it's children + IHeaderRenderStrategy strategy = AbstractHeaderRenderStrategy.get(); - component.renderHead(header); - - if (component instanceof MarkupContainer) - { - ((MarkupContainer)component).visitChildren(new IVisitor<Component, Void>() - { - @Override - public void component(final Component component, final IVisit<Void> visit) - { - if (component.isVisibleInHierarchy()) - { - component.renderHead(header); - } - else - { - visit.dontGoDeeper(); - } - } - }); - } + strategy.renderHeader(header, null, component); } finally { // revert to old response requestCycle.setResponse(oldResponse); http://git-wip-us.apache.org/repos/asf/wicket/blob/217fbb3b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java index 8998cb5..0cee432 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java @@ -82,15 +82,7 @@ public abstract class AjaxEventBehavior extends AbstractDefaultAjaxBehavior { CharSequence js = getCallbackScript(component); - AjaxRequestTarget target = component.getRequestCycle().find(AjaxRequestTarget.class); - if (target == null) - { - response.render(OnDomReadyHeaderItem.forScript(js.toString())); - } - else - { - target.appendJavaScript(js); - } + response.render(OnDomReadyHeaderItem.forScript(js.toString())); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/217fbb3b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html index a35bf0e..c62457a 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html @@ -12,4 +12,4 @@ Wicket.Ajax.DebugWindow.enabled=true; Wicket.Ajax.baseUrl="wicket/page?0-1.IBehaviorListener.0-test"; /*]^]^>*/ </script> -</head>]]></header-contribution><evaluate><![CDATA[(function(){test1();})();(function(){test2();})();(function(){Wicket.Ajax.ajax({"u":"./page?0-1.IBehaviorListener.0-test","e":"click","c":"test1"});})();]]></evaluate></ajax-response> \ No newline at end of file +</head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Ajax.ajax({"u":"./page?0-1.IBehaviorListener.0-test","e":"click","c":"test1"});})();(function(){test1();})();(function(){test2();})();]]></evaluate></ajax-response> \ No newline at end of file
