I made an example of what I'm talking about. I cant get it to accept an item (not have that red x) when I drag a datagrid row over the tree. ondragEnter is where the code that SHOULD handle it is.
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script> <![CDATA[ import mx.controls.dataGridClasses.DataGridColumn; import mx.events.DragEvent; import mx.collections.XMLListCollection; import mx.managers.DragManager ; import mx.controls.Tree; import mx.core.DragSource; import mx.controls.DataGrid; import mx.core.UIComponent; [Bindable] public var company:XML = <list> <folder title="Firmware" code="200" isBranch="true"> <project projDef="D.002440" projDesc="Project3" /> <project projDef="D.000621" projDesc="Project4" /> </folder> <folder title="Hardware" code="300" isBranch="true"> <project projDef="M.000237" projDesc="Project1" /> <project projDef="M.000169" projDesc="Project2" /> </folder> <folder title="Misc" code="400" isBranch="true" /> </list>; [Bindable] public var myData:XML = <list> <item title="item1"/> <item title="item2"/> <item title="item3"/> </list>; [Bindable] public var companyList:XMLListCollection = new XMLListCollection( company.folder ); [Bindable] public var companyList2:XMLListCollection = new XMLListCollection(myData.item ); private function treeLabel( item:Object ) : String{ var node:XML = XML(item); if( node.localName() == "folder" ) return [EMAIL PROTECTED]; else return [EMAIL PROTECTED]; } //THIS IS WHERE MY PROBLEMS ARE, I THINK! private function onDragEnter(event:DragEvent) : void{ event.preventDefault(); var ds:Array if (event.dragInitiator is DataGrid){ ds = event.dragSource.dataForFormat ("items") as Array; } if (event.dragInitiator is Tree){ ds = event.dragSource.dataForFormat("treeItems") as Array; } for( var i:int = 0; i < ds.length; i++ ){ trace(ds[i].projDef); } DragManager.acceptDragDrop(UIComponent(event.currentTarget)); } ]]> </mx:Script> <mx:Tree id="myTree" width="200" allowMultipleSelection="true" dropEnabled="true" labelFunction="treeLabel" dragEnabled="true" dragMoveEnabled="true" dragEnter="onDragEnter(event)" dataProvider="{companyList}"> </mx:Tree> <mx:DataGrid dragEnabled="true" dataProvider="{companyList2}"> <mx:columns> <mx:DataGridColumn headerText="Column 1" dataField="@title"/> <mx:DataGridColumn headerText="Column 2" dataField=""/> </mx:columns> </mx:DataGrid> </mx:Application> --- In flexcoders@yahoogroups.com, "Nate Pearson" <[EMAIL PROTECTED]> wrote: > > Alex, ur the man for always replying to me :). > > I changed it to: > > private function onDragEnter(event:DragEvent):void{ > > event.preventDefault(); > > DragManager.acceptDragDrop(UIComponent(event.currentTarget)) > > } > > Maybe I should post some example code? > > > --- In flexcoders@yahoogroups.com, "Alex Harui" <aharui@> wrote: > > > > I think you have to call preventDefault on the event. > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > > Behalf Of Nate Pearson > > Sent: Wednesday, April 18, 2007 7:48 PM > > To: flexcoders@yahoogroups.com > > Subject: [flexcoders] Dragging from a Datagrid to a tree > > > > > > > > this seems pretty straight forward. I am dragging from a datagrid to > > a tree, but i get the red X. > > > > on the tree i set dragEnter="onDragEnter(event)" dropEnabled="true" > > > > then i have: > > > > private function onDragEnter(event:DragEvent):void{ > > > > DragManager.acceptDragDrop(UIComponent(event.currentTarget)) > > > > } > > > > What the buggers?! > > >