Hi I'm trying to implement the drag and drop functionality inside a tree, dragging and dropping inside the same tree. However It seems that I cannot drag and drop leaf nodes... When I handle enterDrag event the item seems to be appearing only at debug time and gets lost after that...
here is the code.. <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.events.DragEvent; import mx.managers.DragManager; import mx.core.UIComponent; import mx.core.DragSource; private function onDragEnter(event : DragEvent) : void { var items : Array = event.dragSource.dataForFormat("treeItems") as Array; trace("items ", items); //this only shows data for branches //if I try drag drop a leaf like spam for //instance I can see the node only when debugginh and when resuming the data is gone //when resuming even though the length is 1 } /** * The dragDrop event is dispatched when the mouse is released. * The Tree can still ignore the drop here */ private function onDragDrop(event : DragEvent) : void { var ds : DragSource = event.dragSource; var items : Array = ds.dataForFormat("treeItems") as Array; trace("items ", items); //this display actually the drop node instead of the dragsource var dropTarget : Tree = Tree(event.currentTarget); var selectedIndex : int = myTree.calculateDropIndex(event); myTree.selectedIndex = selectedIndex; var node : XML = myTree.selectedItem as XML; var dropParent : *; // if the selected node has children // then add the items at the beginning if(myTree.dataDescriptor.hasChildren(node)) { dropParent = node; selectedIndex = 0; } else { dropParent = node.parent(); } // taking all of the items in the DragSouce, insert them into the // tree using parent pointer. // taking all of the items in the DragSouce, insert them into the // tree using parent pointer. var xml : XML = new XML(items); var sucess : Boolean = myTree.dataDescriptor.addChildAt(dropParent, xml, selectedIndex); //trace(sucess); } ]]> </mx:Script> <mx:Tree id="myTree" width="300" height="100%" labelField="@label" showRoot="false" dataProvider="{treeData}" borderStyle="none" dragEnabled="true" dragMoveEnabled="true" dropEnabled="true" dragEnter="onDragEnter(event)" dragDrop="onDragDrop(event)"> </mx:Tree> <mx:XMLList id="treeData"> <node label="Mail Box"> <node label="Inbox"> <node label="Marketing"/> <node label="Product Management"/> <node label="Personal"/> </node> <node label="Inbox"> <node label="Marketing"/> <node label="Product Management"/> <node label="Personal"/> </node> <node label="Inbox"> <node label="Marketing"/> <node label="Product Management"/> <node label="Personal"/> </node> <node label="Outbox"> <node label="Professional"/> <node label="Personal"/> <node label="Inbox"> <node label="Marketing"/> <node label="Product Management"/> </node> <node label="Personal"/> </node> <node label="De mutat"> <node label="Unu"/> <node label="Doi"/> <node label="DoiUnu"> <node label="DoiUnuUnu"/> <node label="DoiUNuDoi"/> </node> <node label="Trei"/> </node> <node label="Spamu"/> <node label="Sent"/> <node label="Movable"/> </node> </mx:XMLList> </mx:Application> so the code seems to be working when drag and dropping an folder but not when dropping a leaf, I get a new Item with no label. I have searched the archives for something similar and found only the same issue posted twice by 2 different guys and no answers. So I thought I'll have better luck... TIA, Claudiu

