[richfaces-issues] [JBoss JIRA] Updated: (RF-11138) tree does not invoke selectionChangeListener in popupPanel

Brian Leathem (JIRA) jira-events at lists.jboss.org
Wed Jul 20 02:50:23 EDT 2011


     [ https://issues.jboss.org/browse/RF-11138?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Leathem updated RF-11138:
-------------------------------

    Workaround Description: 
Workaround:
1. Switch selectionType to "client"
2. Add a jsFunction and extend the controller with a property to accept the selected node's id
	<a4j:jsFunction name="jsSetSelectedId">
		<a4j:param name="name" assignTo="#{treeController.selectedId}"/>
	</a4j:jsFunction> 
3. Add a panel to the node's content and call the jsFunction from above in the onclick event
	<rich:treeNode>
		<a4j:outputPanel layout="block" onclick="jsSetSelectedId('#{item.id}');return true;">
		...
                Workaround: [Workaround Exists]
               Description: 
I am having a tree for a selection of a node. To monitor a selection, I initialized the attribute "selectionType" to "ajax", added the attribute "selectionChangeListener" and made it point to a method of a managed bean. Everyhting is working extremely well, if I put the tree onto the form straight away: Everytime, a node is selected, the method is invoked and I get all the information I need to determine the selected node. The definition is as follows:
{code}
	<rich:tree var="item"  
		id="tree2"
		selection="#{treeController.selection}" 
		selectionType="ajax"
		selectionChangeListener="#{treeController.selectionChanged}" 
		rendered="true"> 
{code}
Now, I want to have the same tree in a popup panel. All I do is wrapping a <rich:popupPanel id="abc2"> around it (so no moving to another place - both elements are directly located under the <h:form> node). Surprise: Nothing happens when a node is selected in the popup panel, the method, indicated in selectionChangeListener is never invoked. I remarked, that also the hidden input element form:tree2__SELECTION_STATE never changes its value throughout selecting differnt nodes.

Intersting: Adding toggleType="ajax" and toggleListener="#{orgTreeController.toggle}" to the same tree, works well in both cases.




  was:
I am having a tree for a selection of a node. To monitor a selection, I initialized the attribute "selectionType" to "ajax", added the attribute "selectionChangeListener" and made it point to a method of a managed bean. Everyhting is working extremely well, if I put the tree onto the form straight away: Everytime, a node is selected, the method is invoked and I get all the information I need to determine the selected node. The definition is as follows:

	<rich:tree var="item"  
		id="tree2"
		selection="#{treeController.selection}" 
		selectionType="ajax"
		selectionChangeListener="#{treeController.selectionChanged}" 
		rendered="true"> 

Now, I want to have the same tree in a popup panel. All I do is wrapping a <rich:popupPanel id="abc2"> around it (so no moving to another place - both elements are directly located under the <h:form> node). Surprise: Nothing happens when a node is selected in the popup panel, the method, indicated in selectionChangeListener is never invoked. I remarked, that also the hidden input element form:tree2__SELECTION_STATE never changes its value throughout selecting differnt nodes.

Intersting: Adding toggleType="ajax" and toggleListener="#{orgTreeController.toggle}" to the same tree, works well in both cases.


Workaround:
1. Switch selectionType to "client"
2. Add a jsFunction and extend the controller with a property to accept the selected node's id
	<a4j:jsFunction name="jsSetSelectedId">
		<a4j:param name="name" assignTo="#{treeController.selectedId}"/>
	</a4j:jsFunction> 
3. Add a panel to the node's content and call the jsFunction from above in the onclick event
	<rich:treeNode>
		<a4j:outputPanel layout="block" onclick="jsSetSelectedId('#{item.id}');return true;">
		...



> tree does not invoke selectionChangeListener in popupPanel
> ----------------------------------------------------------
>
>                 Key: RF-11138
>                 URL: https://issues.jboss.org/browse/RF-11138
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-tree
>    Affects Versions: 4.0.0.Final
>         Environment: WinXP; JBoss 6.0.0.Final; RichFaces 4.0.0 
>            Reporter: Bastian Ulke
>              Labels: popupPanel, selectionChangeListener, tree
>
> I am having a tree for a selection of a node. To monitor a selection, I initialized the attribute "selectionType" to "ajax", added the attribute "selectionChangeListener" and made it point to a method of a managed bean. Everyhting is working extremely well, if I put the tree onto the form straight away: Everytime, a node is selected, the method is invoked and I get all the information I need to determine the selected node. The definition is as follows:
> {code}
> 	<rich:tree var="item"  
> 		id="tree2"
> 		selection="#{treeController.selection}" 
> 		selectionType="ajax"
> 		selectionChangeListener="#{treeController.selectionChanged}" 
> 		rendered="true"> 
> {code}
> Now, I want to have the same tree in a popup panel. All I do is wrapping a <rich:popupPanel id="abc2"> around it (so no moving to another place - both elements are directly located under the <h:form> node). Surprise: Nothing happens when a node is selected in the popup panel, the method, indicated in selectionChangeListener is never invoked. I remarked, that also the hidden input element form:tree2__SELECTION_STATE never changes its value throughout selecting differnt nodes.
> Intersting: Adding toggleType="ajax" and toggleListener="#{orgTreeController.toggle}" to the same tree, works well in both cases.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list