You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Manu Mahajan (JIRA)" <ji...@apache.org> on 2007/04/03 13:34:52 UTC
[jira] Commented: (WW-1813) Tree Tag's treeSelectedTopic attribute
doesn't works
[ https://issues.apache.org/struts/browse/WW-1813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40737 ]
Manu Mahajan commented on WW-1813:
----------------------------------
I did a little investigation on this because I needed this to work for a project that I'm doing. Here's the result of my effort.
I think this has broken due to a change in Dojo upstream.
I downloaded the latest version of Dojo (0.4.2) and I went through some sample pages which used the tree widget. Here's what I found
Code generated by Struts 2 taglib:
<div dojoType="Tree" publishSelectionTopic="treeNodeSelected">
This does not work.
Code in a dojo sample:
<dojo:TreeSelector widgetId="treeSelector" eventNames="select:nodeSelected"></dojo:TreeSelector>
<div dojoType="Tree" selector="treeSelector">
This seems to work fine.
So it seems that dojo requires a <dojo:TreeSelector> widget to capture events from a Tree and selector parameter in the tree tag to connect the tree and the selector.
To accomodate this I modified the struts code to add a new parameter to the <s:tree> tag called "treeSelector".
I had to modify the following files
1. template/ajax/tree.ftl (for painting selector=" " in the resulting xhtml)
2. org/apache/struts2/components/Tree.class (added property treeSelector along with getter and setter)
3. org/apache/struts2/views/jsp/ui/TreeTag.class (added property treeSelector along with getter and setter)
4. META-INF/struts-tags.tld (modified tld to accept treeSelector as a parameter for the tree tag)
I am posting the changed files for review.
Now my jsp looks something like this
<s:head debug="true" theme="ajax"/>
<script language="JavaScript" type="text/javascript">
dojo.addOnLoad(function() {
dojo.event.topic.subscribe("nodeSelected",
function(message) { dojo.debug(message.node.title+" selected"); }
);
});
</script>
<dojo:TreeSelector widgetId="treeSelector" eventNames="select:nodeSelected"></dojo:TreeSelector>
<s:tree theme = "ajax"
rootNode="%{category}"
childCollectionProperty="categoryList"
nodeIdProperty="id"
nodeTitleProperty="name"
treeSelector="treeSelector">
</s:tree>
This is working perfectly for me but I think the solution will be complete if we add a new <s:treeSelector> tag to the taglib.
Hope this was useful. I'm posting something for the first time here so I do not know the best practices. Hope you don't mind.
> Tree Tag's treeSelectedTopic attribute doesn't works
> ----------------------------------------------------
>
> Key: WW-1813
> URL: https://issues.apache.org/struts/browse/WW-1813
> Project: Struts 2
> Issue Type: Bug
> Components: Views
> Affects Versions: 2.0.6
> Environment: jdk1.5.0_08,apache-tomcat-5.5.20,struts2-showcase-2.0.6.war
> Reporter: zhouyanming
> Assigned To: Musachy Barroso
> Fix For: 2.1.0
>
>
> in /tags/ui/treeExampleDynamic.jsp
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.