So I'm trying to make a tree which can reorder its nodes by dragging them. One of the things I wanted to do is prevent a parent item from being dragged on to any of its children, and to show that during the dragOver event.
In order to calculate whether the source is being dragged on to any of its offspring, I've been comparing the event.dragSource.dataForFormat("treeItems") first to firstValue=event.target.getDropParent().getTreeNodeAt (event.target.getDropLocation()) then recursively to the parents of firstValue. This apparently doesn't work because dataForFormat seems to hand me a copy of the items being dragged instead of an actual reference, so the two values are never equal. I did note that the items that dataForFormat give me, do contain references to the real parents, data and other objects, it is just that the items themselves are copies for some reason. What I ended up doing is something like the following: if(checkParentDrop(myowncustom.TreeUtils.findDataItemNode (view.TemplateAssemblyTree, dragItems[i].getData()) , event.target.getDropParent().getTreeNodeAt (event.target.getDropLocation()))) action = DragManager.NONE; private function checkParentDrop(source, node):Boolean { if(source == node) return true; if(node.getParent()!=null) return checkParentDrop(source, node.getParent()); else return false; } public static function findDataItemNode(tree:mx.controls.Tree, o:Object):TreeNode ... recursively check the entire tree for the same getData() reference ... So basically instead of comparing items from event.dragSource.dataForFormat("treeItems"), i have to recursively look them up by the reference they contain to their getData() information, to get the actual reference to the TreeNode which I then compare to the drop target and its ancestors for referential equality. This is horribly ugly, but it works. Is there a better way that people have stumbled across to validate tree->self drags? I wish that dataForFormat handed over references instead of copies! (sorry if this was discussed before; I'm apparently bad at finding previously discussed topics in this list!) Sean -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/