Tree: DragAndDrop support lost after node is expanded
chupacabras Aug 23, 2017 5:45 AMI'm facing a problem with rich:tree.
Nodes in this tree are expandable, that works OK. I can expand and collapse them, toggleType is "ajax".
And there is drag-and-drop support on these nodes. I can drag any node and drop on another node. That works OK as well.
But problem is when I collapse or expand some node. After this none of descending node is draggable.
It seems that "RichFaces.ui.Draggable" and "RichFaces.ui.Droppable" is not executed after expand/collapse.
This is my code:
<rich:tree id="tree" onbeforeselectionchange="ajaxLoadingStart();" onselectionchange="ajaxLoadingComplete();" selectionChangeListener="#{structureBean.selectionChanged}" nodeType="#{node.type}" var="node" value="#{structureBean.rootNodes}" toggleType="ajax" selectionType="ajax" > <rich:treeNode type="department" iconLeaf="#{node.icon}" iconExpanded="#{node.icon}" iconCollapsed="#{node.icon}" expanded="#{node.expanded}" onbeforetoggle="ajaxLoadingStart();" ontoggle="ajaxLoadingComplete();"> <a4j:outputPanel> <rich:dragIndicator id="indicator" acceptClass="accept" rejectClass="reject" draggingClass="default"><h:outputText value="#{node.data.universalTitle}" /></rich:dragIndicator> <rich:dropTarget onbeforedomupdate="ajaxLoadingComplete();" onbegin="ajaxLoadingStart();" oncomplete="ajaxLoadingComplete();" acceptedTypes="department, position" dropValue="#{node}" render="tree" dropListener="#{structureBean.processDrop}" /> <rich:dragSource type="#{node.type}" dragValue="#{node}" dragIndicator="indicator" /> <table border="0" cellspacing="0" cellpadding="0"><tr><td style="padding-right: 5px;"> <h:outputText value="#{node.data.universalTitle}" /> </td><td> <h:outputLink value="../departments/department.xhtml?id=#{node.data.id}"> <qi:icon standardIcon="link-small" /> </h:outputLink> </td></tr></table> </a4j:outputPanel> </rich:treeNode> <rich:treeNode type="position" icon="#{node.icon}" iconLeaf="#{node.icon}"> <a4j:outputPanel> <rich:dragIndicator id="indicator2" acceptClass="accept" rejectClass="reject" draggingClass="default"><h:outputText value="#{node.data.universalTitle}" /></rich:dragIndicator> <rich:dropTarget acceptedTypes="department, position" dropValue="#{node}" render="tree" dropListener="#{structureBean.processDrop}" /> <rich:dragSource type="#{node.type}" dragValue="#{node}" dragIndicator="indicator2" /> <h:outputLink value="../positions/position.xhtml?id=#{node.data.id}"> <h:outputText value="#{node.data.universalTitle}" /> </h:outputLink> </a4j:outputPanel> </rich:treeNode> </rich:tree>
Do I have some error in my code? Or it is some bug in Richfaces?