WICKET-3367
Rewrite all JavaScript inline event handlers to be proper attached event 
handlers

Move the JS contribution from AjaxEventBehavior to AbstractDefaultAjaxBehavior.
Add missing javadoc to AjaxEventBehavior


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8f8a85a8
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8f8a85a8
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8f8a85a8

Branch: refs/heads/master
Commit: 8f8a85a8410f6f6f82e925ab07f9a8d86c48b090
Parents: ed86660
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Jan 18 09:49:43 2012 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed Jan 18 09:49:43 2012 +0100

----------------------------------------------------------------------
 .../wicket/ajax/AbstractDefaultAjaxBehavior.java   |   26 +++++++++++-
 .../org/apache/wicket/ajax/AjaxEventBehavior.java  |   33 ++------------
 2 files changed, 29 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/8f8a85a8/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
index 8f30b6e..4738422 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
@@ -34,6 +34,7 @@ import org.apache.wicket.ajax.json.JSONObject;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.html.IComponentAwareHeaderContributor;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.Url;
@@ -75,18 +76,39 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
         *      org.apache.wicket.markup.head.IHeaderResponse)
         */
        @Override
-       public void renderHead(Component component, IHeaderResponse response)
+       public void renderHead(final Component component, final IHeaderResponse 
response)
        {
                super.renderHead(component, response);
 
                
CoreLibrariesContributor.contributeAjax(component.getApplication(), response);
 
-               Url baseUrl = RequestCycle.get().getUrlRenderer().getBaseUrl();
+               RequestCycle requestCycle = component.getRequestCycle();
+               Url baseUrl = requestCycle.getUrlRenderer().getBaseUrl();
                CharSequence ajaxBaseUrl = 
Strings.escapeMarkup(baseUrl.toString());
                
response.render(JavaScriptHeaderItem.forScript("Wicket.Ajax.baseUrl=\"" + 
ajaxBaseUrl +
                        "\";", "wicket-ajax-base-url"));
 
                renderExtraHeaderContributors(component, response);
+
+               if (component.isEnabledInHierarchy())
+               {
+                       StringBuilder js = new StringBuilder();
+                       js.append("Wicket.Ajax.ajax(");
+
+                       js.append(renderAjaxAttributes(component));
+
+                       js.append(");");
+
+                       AjaxRequestTarget target = 
requestCycle.find(AjaxRequestTarget.class);
+                       if (target == null)
+                       {
+                               
response.render(OnDomReadyHeaderItem.forScript(js.toString()));
+                       }
+                       else
+                       {
+                               target.appendJavaScript(js);
+                       }
+               }
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/8f8a85a8/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 a011cb8..5923e1b 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
@@ -38,7 +38,7 @@ import org.apache.wicket.util.lang.Args;
  *         }
  * </pre>
  * 
- * This behavior will be linked to the onclick javascript event of the div 
WebMarkupContainer
+ * This behavior will be linked to the <em>click</em> javascript event of the 
div WebMarkupContainer
  * represents, and so anytime a user clicks this div the {@link 
#onEvent(AjaxRequestTarget)} of the
  * behavior is invoked.
  * 
@@ -56,7 +56,7 @@ public abstract class AjaxEventBehavior extends 
AbstractDefaultAjaxBehavior
         * Construct.
         * 
         * @param event
-        *            event this behavior will be attached to
+        *      the event this behavior will be attached to
         */
        public AjaxEventBehavior(String event)
        {
@@ -81,35 +81,10 @@ public abstract class AjaxEventBehavior extends 
AbstractDefaultAjaxBehavior
                attributes.setEventNames(event);
        }
 
-       @Override
-       public void renderHead(Component component, IHeaderResponse response)
-       {
-               super.renderHead(component, response);
-
-               if (component.isEnabledInHierarchy())
-               {
-                       StringBuilder js = new StringBuilder();
-                       js.append("Wicket.Ajax.ajax(");
-
-                       js.append(renderAjaxAttributes(component));
-
-                       js.append(");");
-
-                       AjaxRequestTarget target = 
getComponent().getRequestCycle().find(AjaxRequestTarget.class);
-                       if (target == null)
-                       {
-                               
response.render(OnDomReadyHeaderItem.forScript(js.toString()));
-                       }
-                       else
-                       {
-                               target.appendJavaScript(js);
-                       }
-               }
-       }
-
        /**
         * 
         * @param event
+        *      the event this behavior will be attached to
         */
        protected void onCheckEvent(final String event)
        {
@@ -118,6 +93,7 @@ public abstract class AjaxEventBehavior extends 
AbstractDefaultAjaxBehavior
        /**
         * 
         * @return event
+        *      the event this behavior is attached to
         */
        public final String getEvent()
        {
@@ -138,6 +114,7 @@ public abstract class AjaxEventBehavior extends 
AbstractDefaultAjaxBehavior
         * Listener method for the ajax event
         * 
         * @param target
+        *      the current request handler
         */
        protected abstract void onEvent(final AjaxRequestTarget target);
 }

Reply via email to