You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/05/30 23:37:35 UTC

svn commit: r410381 - in /tapestry/tapestry4/trunk/framework/src: java/org/apache/tapestry/ java/org/apache/tapestry/dojo/ java/org/apache/tapestry/dojo/html/ java/org/apache/tapestry/html/ js/tapestry/

Author: jkuhnert
Date: Tue May 30 14:37:34 2006
New Revision: 410381

URL: http://svn.apache.org/viewvc?rev=410381&view=rev
Log:
Cleanup of event connection scripts, re-factored IO calls to global tapestry.bind call. 

Modified:
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ComponentEvent.script
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/ElementEvent.script
    tapestry/tapestry4/trunk/framework/src/js/tapestry/core.js

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ComponentEvent.script
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ComponentEvent.script?rev=410381&r1=410380&r2=410381&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ComponentEvent.script (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ComponentEvent.script Tue May 30 14:37:34 2006
@@ -8,15 +8,18 @@
 <input-symbol key="events" required="yes" />
     <body>
         <unique>
-            dojo.require("dojo.io");
-            dojo.require("dojo.json");
             dojo.require("dojo.event");
+            dojo.require("tapestry.*");
         </unique>
     </body>
     <initialization>
         <foreach expression="events" key="event">
         dojo.event.connect(dojo.byId("${component.id}"), "${event}", function(e) {
-            dojo.debug("Event fired");
+            var content={beventname:"${event}"};
+            tapestry.event.buildEventProperties(e, content);
+            if (!content["beventtarget.id"]) content["beventtarget.id"]="${component.id}";
+            
+            tapestry.bind("${url}", content);
         });
         </foreach>
     </initialization>

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java?rev=410381&r1=410380&r2=410381&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java Tue May 30 14:37:34 2006
@@ -81,9 +81,8 @@
         // logging configuration
         str.append("\n<script type=\"text/javascript\">")
         .append("dojo.require(\"dojo.logging.Logger\");\n")
-        .append("dojo.event.connect(window, \"onload\",function(e){")
         .append("dojo.log.setLevel(dojo.log.getLevel(\"").append(_browserLogLevel)
-        .append("\"));});</script>");
+        .append("\"));</script>");
         
         writer.printRaw(str.toString());
     }

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script?rev=410381&r1=410380&r2=410381&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/html/WidgetEvent.script Tue May 30 14:37:34 2006
@@ -8,9 +8,7 @@
 <input-symbol key="events" required="yes" />
     <body>
         <unique>
-            dojo.require("dojo.io");
             dojo.require("dojo.event");
-            dojo.require("dojo.widget.Manager");
             dojo.require("tapestry.*");
         </unique>
     </body>
@@ -21,16 +19,7 @@
             tapestry.event.buildEventProperties(e, content);
             if (!content["beventtarget.id"]) content["beventtarget.id"]="${component.id}";
             
-            dojo.io.bind({
-                url:"${url}",
-                content:content,
-                headers:{"dojo-ajax-request":true},
-                preventCache:true,
-                load: (function(){tapestry.load.apply(this, arguments);}),
-                error: (function(){tapestry.error.apply(this, arguments);}),
-                mimetype: "text/xml",
-                encoding: "UTF-8"
-            });
+            tapestry.bind("${url}", content);
         });
         </foreach>
     </initialization>

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/ElementEvent.script
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/ElementEvent.script?rev=410381&r1=410380&r2=410381&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/ElementEvent.script (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/ElementEvent.script Tue May 30 14:37:34 2006
@@ -8,15 +8,18 @@
 <input-symbol key="events" required="yes" />
     <body>
         <unique>
-            dojo.require("dojo.io");
-            dojo.require("dojo.json");
             dojo.require("dojo.event");
+            dojo.require("tapestry.*");
         </unique>
     </body>
     <initialization>
         <foreach expression="events" key="event">
         dojo.event.connect(dojo.byId("${target}"), "${event}", function(e) {
-            dojo.debug("Event fired");
+            var content={beventname:"${event}"};
+            tapestry.event.buildEventProperties(e, content);
+            if (!content["beventtarget.id"]) content["beventtarget.id"]="${component.id}";
+            
+            tapestry.bind("${url}", content);
         });
         </foreach>
     </initialization>

Modified: tapestry/tapestry4/trunk/framework/src/js/tapestry/core.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/js/tapestry/core.js?rev=410381&r1=410380&r2=410381&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/js/tapestry/core.js (original)
+++ tapestry/tapestry4/trunk/framework/src/js/tapestry/core.js Tue May 30 14:37:34 2006
@@ -1,17 +1,49 @@
 dojo.provide("tapestry");
 dojo.provide("tapestry.core");
+
 dojo.require("dojo.logging.Logger");
+dojo.require("dojo.io");
+dojo.require("dojo.event");
 
 dojo.setModulePrefix("tapestry", "../tapestry");
 
 tapestry={
+	
 	version:"4.1",
 	
+	/**
+	 * Global XHR bind function for tapestry internals. The 
+	 * error/load functions of this same package are used to handle
+	 * load/error of dojo.io.bind.
+	 * 
+	 * @param url The url to bind the request to.
+	 * @param content A properties map of optional extra content to send.
+	 */
+	bind:function(url, content){
+		dojo.io.bind({
+			url:url,
+            content:content,
+            headers:{"dojo-ajax-request":true},
+            useCache:true,
+            preventCache:true,
+            load: (function(){tapestry.load.apply(this, arguments);}),
+            error: (function(){tapestry.error.apply(this, arguments);}),
+            mimetype: "text/xml",
+            encoding: "UTF-8"
+        });
+	},
+	
+	/**
+	 * Global error handling function for dojo.io.bind requests.
+	 */
 	error:function(type, exception, http, kwArgs){
 		dojo.log.exception("Error received in IO response.", exception);
 	},
 	
+	/**
+	 * Global load handling function for dojo.io.bind requests.
+	 */
 	load:function(type, data, http, kwArgs){
 		dojo.log.debug("Response recieved.");
 	}
-}
\ No newline at end of file
+}