In case anyone else will have the same problem, I'll describe a solution to
this. I use the following script to unselect the other trees:
dojo.event.topic.subscribe("/nodeSelected", function(source){
var selectedNode = source.node;
var selectors =
dojo.widget.manager.getWidgetsByType('struts:StrutsTreeSelector');
/* Remove selection from selected nodes in other trees */
var badNode = null;
for (i=0; i < selectors.length; i++) {
badNode = selectors[i].selectedNode;
if (badNode != null && badNode != selectedNode) {
selectors[i].deselect(selectors[i].selectedNode);
}
}
}
On Mon, Apr 14, 2008 at 9:38 AM, Jukka Välimaa <[EMAIL PROTECTED]>
wrote:
> Hi,
>
> Right now, I'm trying to construct a "forest", or a tree menu with
> multiple root nodes. I'm using struts ajax tags to do it, like so:
>
> <s:iterator value="%{#request.generatedForest}">
> <sx:tree label="%{[0].title}"
> selectedNotifyTopics="/NodeSelected" toggle="fade"
> toggleDuration="0" >
> <s:iterator value="%{[0].children}">
> <sx:treenode label="%{[0].title}" id="%{[0].id}" />
> </s:iterator>
> </sx:tree>
> </s:iterator>
>
> I have one problem (aside from ajax tags not allowing data other that
> title and id to be passed by selectedNotifyTopics). When I select a node
> from a tree, the other nodes in the tree are deselected, at least visually.
> But the nodes I may have selected earlier in other trees of the forest
> remain selected. Can any of you think of a way to get around this problem,
> and get all the nodes in the forest to act in unison, so that only one of
> them is visually selected at a time?
>
> Thanks,
> Jukka
>