Author: musachy Date: Sat Apr 14 15:49:05 2007 New Revision: 528884 URL: http://svn.apache.org/viewvc?view=rev&rev=528884 Log: WW-1813 Tree Tag's treeCollapsedTopic and treeExpandedTopic attribute don't work.
Added: struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTreeSelector.js Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/tree.ftl Added: struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTreeSelector.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTreeSelector.js?view=auto&rev=528884 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTreeSelector.js (added) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTreeSelector.js Sat Apr 14 15:49:05 2007 @@ -0,0 +1,41 @@ +dojo.provide("struts.widget.StrutsTreeSelector"); + +dojo.require("dojo.widget.TreeSelector"); + +dojo.widget.defineWidget( + "struts.widget.StrutsTreeSelector", + dojo.widget.TreeSelector, { + widgetType : "StrutsTreeSelector", + + eventNamesDefault: { + select : "select", + destroy : "destroy", + deselect : "deselect", + dblselect: "dblselect", // select already selected node.. Edit or whatever + expand: "expand", + collapse: "collapse" + }, + + listenTree: function(tree) { + dojo.event.topic.subscribe(tree.eventNames.collapse, this, "collapse"); + dojo.event.topic.subscribe(tree.eventNames.expand, this, "expand"); + struts.widget.StrutsTreeSelector.superclass.unlistenTree.apply(this, [tree]); + }, + + unlistenTree: function(tree) { + dojo.event.topic.unsubscribe(tree.eventNames.collapse, this, "collapse"); + dojo.event.topic.unsubscribe(tree.eventNames.expand, this, "expand"); + struts.widget.StrutsTreeSelector.superclass.unlistenTree.apply(this, [tree]); + }, + + expand: function(message) { + var node = message.source; + dojo.event.topic.publish(this.eventNames.expand, {node: node} ); + }, + + collapse: function(message) { + var node = message.source; + dojo.event.topic.publish(this.eventNames.collapse, {node: node} ); + }, + +}); \ No newline at end of file Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js?view=diff&rev=528884&r1=528883&r2=528884 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js (original) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js Sat Apr 14 15:49:05 2007 @@ -5,6 +5,7 @@ "struts.widget.ComboBox", "struts.widget.StrutsTimePicker", "struts.widget.StrutsDatePicker", - "struts.widget.BindEvent"] + "struts.widget.BindEvent", + "struts.widget.StrutsTreeSelector"] }); dojo.provide("struts.widget.*"); Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/tree.ftl URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/tree.ftl?view=diff&rev=528884&r1=528883&r2=528884 ============================================================================== --- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/tree.ftl (original) +++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/tree.ftl Sat Apr 14 15:49:05 2007 @@ -6,9 +6,20 @@ // dojo.hostenv.writeIncludes(); --> </script> - <#if parameters.treeSelectedTopic?exists> - <dojo:TreeSelector widgetId="treeSelector_${parameters.id?default("")}" eventNames="select:${parameters.treeSelectedTopic?html}"> - </dojo:TreeSelector> + <#if parameters.treeSelectedTopic?exists || parameters.treeExpandedTopic?exists + || parameters.treeCollapsedTopic?exists> + <#assign eventNames = "" > + <#if parameters.treeSelectedTopic?exists> + <#assign eventNames = "select:" + parameters.treeSelectedTopic?html + ";"> + </#if> + <#if parameters.treeExpandedTopic?exists> + <#assign eventNames = eventNames + "expand:" + parameters.treeExpandedTopic?html + ";"> + </#if> + <#if parameters.treeCollapsedTopic?exists> + <#assign eventNames = eventNames + "collapse:" + parameters.treeCollapsedTopic?html> + </#if> + <struts:StrutsTreeSelector widgetId="treeSelector_${parameters.id?default("")}" eventNames="${eventNames}"> + </struts:StrutsTreeSelector> </#if> <div dojoType="Tree" <#if parameters.blankIconSrc?exists> @@ -64,9 +75,6 @@ </#if> <#if parameters.treeSelectedTopic?exists> selector="treeSelector_${parameters.id?default("")}" - </#if> - <#if parameters.treeExpandedTopic?exists> - publishExpandedTopic="${parameters.treeExpandedTopic?html}" </#if> <#if parameters.treeCollapsedTopic?exists> publishCollapsedTopic="${parameters.treeCollapsedTopic?html}"