You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2007/04/07 00:29:51 UTC

svn commit: r526300 [3/3] - in /struts/struts2/trunk/plugins/dojo/src: main/ main/java/org/apache/struts2/dojo/components/ main/java/org/apache/struts2/dojo/views/ main/java/org/apache/struts2/dojo/views/freemarker/tags/ main/java/org/apache/struts2/do...

Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js?view=diff&rev=526300&r1=526299&r2=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js Fri Apr  6 15:29:44 2007
@@ -22086,7 +22086,7 @@
   formFilter : "",
   formNode : null,
 
-  event : "",
+  events : "",
   indicator : "",
 
   parseContent : true,
@@ -22129,14 +22129,20 @@
       this.targetsArray = this.targets.split(",");
     }
 
-    if(!dojo.string.isBlank(this.event)) {
-      dojo.event.connect(this.domNode, this.event, function(evt) {
-        evt.preventDefault();
-        evt.stopPropagation();
-        self.reloadContents();
-      });
+    if(!dojo.string.isBlank(this.events)) {
+      var eventsArray = this.events.split(",");
+      if(eventsArray && this.domNode) {
+        dojo.lang.forEach(eventsArray, function(event){
+           dojo.event.connect(self.domNode, event, function(evt) {
+             evt.preventDefault();
+             evt.stopPropagation();
+             self.reloadContents();
+           });
+        });
+      }
     }
 
+
     if(dojo.string.isBlank(this.href) && dojo.string.isBlank(this.formId)) {
       //no href and no formId, we must be inside a form
       this.formNode = dojo.dom.getFirstAncestorByTag(this.domNode, "form");
@@ -22163,12 +22169,16 @@
 	  var xmlParser = new dojo.xml.Parse();
       dojo.lang.forEach(this.targetsArray, function(target) {
         var node = dojo.byId(target);
-        node.innerHTML = text;
-
-        if(self.parseContent && text != self.loadingText){
-          var frag  = xmlParser.parseElement(node, null, true);
-          dojo.widget.getParser().createSubComponents(frag, dojo.widget.byId(target));
-		}
+        if(node) {
+          node.innerHTML = text;
+  
+          if(self.parseContent && text != self.loadingText){
+            var frag  = xmlParser.parseElement(node, null, true);
+            dojo.widget.getParser().createSubComponents(frag, dojo.widget.byId(target));
+          }
+        } else {
+          self.log("Unable to find target: " + node);
+        }
       });
     }
   },
@@ -22239,11 +22249,11 @@
     var self = this;
     if(topicsArray) {
       dojo.lang.forEach(topicsArray, function(topic) {
-        try {
-          dojo.event.topic.publish(topic, data, type, e);
-        } catch(ex){
-          self.log(ex);
-        }
+      try {
+        dojo.event.topic.publish(topic, data, type, e);
+      } catch(ex){
+        self.log(ex);
+      }
       });
     }
   },
@@ -22827,7 +22837,7 @@
   struts.widget.Bind, {
   widgetType : "BindAnchor",
 
-  event: "onclick",
+  events: "onclick",
 
   postCreate : function() {
      struts.widget.BindAnchor.superclass.postCreate.apply(this);
@@ -27632,7 +27642,6 @@
 dojo.provide("struts.widget.StrutsDatePicker");
 
 
-
 dojo.widget.defineWidget(
   "struts.widget.StrutsDatePicker",
   dojo.widget.DropdownDatePicker, {
@@ -27653,13 +27662,53 @@
   },
 });
 
+dojo.provide("struts.widget.BindEvent");
+
+
+
+dojo.widget.defineWidget(
+  "struts.widget.BindEvent",
+  struts.widget.Bind, {
+  widgetType : "BindEvent",
+
+  sources: "",
+
+  postCreate : function() {
+    struts.widget.BindEvent.superclass.postCreate.apply(this);
+    var self = this;
+
+    if(!dojo.string.isBlank(this.events) && !dojo.string.isBlank(this.sources)) {
+      var eventsArray = this.events.split(",");
+      var sourcesArray = this.sources.split(",");
+
+      if(eventsArray && this.domNode) {
+        //events
+        dojo.lang.forEach(eventsArray, function(event) {
+          //sources
+          dojo.lang.forEach(sourcesArray, function(source) {
+            var sourceObject = dojo.byId(source);
+            if(sourceObject) {
+              dojo.event.connect(sourceObject, event, function(evt) {
+                evt.preventDefault();
+                evt.stopPropagation();
+                self.reloadContents();
+              });
+            }
+          });
+        });
+      }
+    }
+  }
+});
+
 dojo.kwCompoundRequire({
 	common: ["struts.widget.Bind",
 	         "struts.widget.BindDiv",
 	         "struts.widget.BindAnchor",
 	         "struts.widget.ComboBox",
              "struts.widget.StrutsTimePicker",
-             "struts.widget.StrutsDatePicker"]
+             "struts.widget.StrutsDatePicker",
+             "struts.widget.BindEvent"]
 });
 dojo.provide("struts.widget.*");
 

Added: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind-close.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind-close.ftl?view=auto&rev=526300
==============================================================================
    (empty)

Added: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl?view=auto&rev=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl (added)
+++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/bind.ftl Fri Apr  6 15:29:44 2007
@@ -0,0 +1,47 @@
+<script language="JavaScript" type="text/javascript">
+	dojo.addOnLoad(function() {
+		dojo.widget.createWidget("struts:BindEvent", {
+			"sources": "${parameters.sources?html}",
+			"events": "${parameters.events?html}",
+			<#if parameters.id?if_exists != "">
+			  	"id": "${parameters.id?html}",
+		    </#if>
+		    <#if parameters.formId?if_exists != "">
+			  	"formId": "${parameters.formId?html}",
+		    </#if>
+			<#if parameters.formFilter?if_exists != "">
+			  	"formFilter": "${parameters.formFilter?html}",
+			</#if>
+			<#if parameters.href?if_exists != "">
+			  	"href": "${parameters.href}",
+			</#if>
+			<#if parameters.loadingText?if_exists != "">
+			    "loadingText" : "${parameters.loadingText?html}",
+		    </#if>
+			<#if parameters.errorText?if_exists != "">
+			    "errorText" : "${parameters.errorText?html}",
+			</#if>
+			<#if parameters.executeScripts?exists>
+			    "executeScripts": "${parameters.executeScripts?string?html}",
+			</#if>
+			<#if parameters.listenTopics?if_exists != "">
+			    "listenTopics": "${parameters.listenTopics?html}",
+			</#if>
+			<#if parameters.notifyTopics?if_exists != "">
+			    "notifyTopics": "${parameters.notifyTopics?html}",
+			</#if>
+			<#if parameters.targets?if_exists != "">
+			    "targets": "${parameters.targets?html}",
+			</#if>
+			<#if parameters.indicator?if_exists != "">
+			    "indicator": "${parameters.indicator?html}",
+			</#if>
+			<#if parameters.showErrorTransportText?exists>
+			    "showError": "${parameters.showErrorTransportText?string?html}",
+			</#if>
+			<#if parameters.handler?if_exists != "">
+			    "handler": "${parameters.handler?html}"
+		    </#if>
+		});
+	});
+</script>
\ No newline at end of file

Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/dojoRequire.js
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/dojoRequire.js?view=diff&rev=526300&r1=526299&r2=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/dojoRequire.js (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/dojoRequire.js Fri Apr  6 15:29:44 2007
@@ -5,11 +5,6 @@
 dojo.require('dojo.widget.*');
 dojo.widget.manager.registerWidgetPackage('struts.widget');
 
-dojo.require("struts.widget.Bind");
-dojo.require("struts.widget.BindDiv");
-dojo.require("struts.widget.BindAnchor");
-dojo.require("struts.widget.ComboBox");
-dojo.require("struts.widget.StrutsTimePicker")
-dojo.require("struts.widget.StrutsDatePicker")
+dojo.require("struts.widget.*");
 dojo.require("dojo.widget.Editor2");
 dojo.hostenv.writeIncludes(); // not needed, but allows the Venkman debugger to work with the includes

Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/submit.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/submit.ftl?view=diff&rev=526300&r1=526299&r2=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/submit.ftl (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/submit.ftl Fri Apr  6 15:29:44 2007
@@ -1,5 +1,5 @@
 <#if parameters.type?exists && parameters.type=="button">
-  <input type="button" dojoType="struts:Bind" event="onclick"<#rt/>
+  <input type="button" dojoType="struts:Bind" events="onclick"<#rt/>
   <#include "/${parameters.templateDir}/ajax/ajax-common.ftl"/>
   <#include "/${parameters.templateDir}/simple/scripting-events.ftl"/>
   <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
@@ -9,7 +9,7 @@
  />
 <#else>
   <#if parameters.type?exists && parameters.type=="image">
-    <input type="image" dojoType="struts:Bind" event="onclick"<#rt/>
+    <input type="image" dojoType="struts:Bind" events="onclick"<#rt/>
     <#if parameters.label?if_exists != "">
      alt="${parameters.label?html}"<#rt/>
     </#if>
@@ -17,7 +17,7 @@
      src="${parameters.src?html}"<#rt/>
     </#if>
   <#else>
-    <input type="submit" dojoType="struts:Bind" event="onclick"<#rt/>
+    <input type="submit" dojoType="struts:Bind" events="onclick"<#rt/>
   </#if>
     <#if parameters.nameValue?if_exists != "">
      value="${parameters.nameValue?html}"<#rt/>

Added: struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java?view=auto&rev=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java (added)
+++ struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/BindTest.java Fri Apr  6 15:29:44 2007
@@ -0,0 +1,33 @@
+package org.apache.struts2.dojo.views.jsp.ui;
+
+import org.apache.struts2.dojo.TestAction;
+
+public class BindTest extends AbstractUITagTest {
+    public void testSubmit() throws Exception {
+        TestAction testAction = (TestAction) action;
+        testAction.setFoo("bar");
+
+        BindTag tag = new BindTag();
+        tag.setPageContext(pageContext);
+
+        tag.setId("a");
+        tag.setHref("b");
+        tag.setLoadingText("c");
+        tag.setErrorText("d");
+        tag.setListenTopics("e");
+        tag.setBeforeNotifyTopics("f");
+        tag.setAfterNotifyTopics("g");
+        tag.setHandler("h");
+        tag.setLabel("i");
+        tag.setNotifyTopics("k");
+        tag.setIndicator("l");
+        tag.setShowLoadingText("true");
+        tag.setErrorNotifyTopics("m");
+        tag.setSources("n");
+        tag.setEvents("o");
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(BindTest.class.getResource("Bind-1.txt"));
+    }
+}

Added: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt?view=auto&rev=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt (added)
+++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Bind-1.txt Fri Apr  6 15:29:44 2007
@@ -0,0 +1,17 @@
+<script language="JavaScript" type="text/javascript">
+	dojo.addOnLoad(function() { 
+		dojo.widget.createWidget("struts:BindEvent", {
+			"sources":"n",
+			"events":"o",
+			"id":"a",
+			"href":"b",
+			"loadingText":"c",
+			"errorText":"d",
+			"listenTopics":"e", 
+			"notifyTopics":"k",
+			"indicator":"l",
+			"showError":"true",
+			"handler":"h"
+		});
+	});
+</script>
\ No newline at end of file

Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt?view=diff&rev=526300&r1=526299&r2=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt (original)
+++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt Fri Apr  6 15:29:44 2007
@@ -1,7 +1,7 @@
 <input
   type="submit"
   dojoType="struts:Bind"
-  event="onclick"
+  events="onclick"
   value="Submit"
   id="a"
   label="i"

Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt?view=diff&rev=526300&r1=526299&r2=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt (original)
+++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt Fri Apr  6 15:29:44 2007
@@ -1,7 +1,7 @@
 <input
   type="button"
   dojoType="struts:Bind"
-  event="onclick"
+  events="onclick"
   id="a"
   label="i"
   href="b"

Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt?view=diff&rev=526300&r1=526299&r2=526300
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt (original)
+++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt Fri Apr  6 15:29:44 2007
@@ -1,7 +1,7 @@
 <input
   type="image"
   dojoType="struts:Bind"
-  event="onclick"
+  events="onclick"
   alt="i"
   src="j"
   value="Submit"