Hi-
Just try this code…….
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="350" viewSourceURL="srcview/index.html"> <mx:Script><![CDATA[ import mx.collections.ArrayCollection; import mx.collections.ListCollectionView; import mx.controls.List; import mx.core.DragSource; import mx.events.*; import mx.managers.DragManager;
import mx.controls.Alert;import mx.collections.IList; import flash.events.MouseEvent; private var dropInitiator:String private function setDragInitator(event:MouseEvent, id:String):void { dropInitiator = id; //Alert.show("id: " + id);
} private function doDragEnter(event:DragEvent):void { var dropTarget:DataGrid = DataGrid(event.currentTarget); var dataInfo:ArrayCollection = dropTarget.dataProvider as ArrayCollection; var items:Array = event.dragSource.dataForFormat("items") as Array; var drop:Boolean = true; if(dropInitiator == dropTarget.id){DragManager.showFeedback(DragManager.MOVE); DragManager.acceptDragDrop(dropTarget); } else { for(var i:int = 0; i < dataInfo.length; i++){ if(dataInfo[i].data == items[0].data) drop = false; }
if(drop){DragManager.showFeedback(DragManager.COPY);
DragManager.acceptDragDrop(dropTarget);
} } }
private function doDragDrop(event:DragEvent):void { var dropTarget:DataGrid = DataGrid(event.currentTarget); doDragExit(event); var items:Array = event.dragSource.dataForFormat("items") as Array;var dropLoc:int = dropTarget.calculateDropIndex(event); for(var i:int = 0; i < items.length; i++){
IList(dropTarget.dataProvider).addItemAt(items[i], dropLoc );
} }
private function doDragExit(event:DragEvent):void { var dropTarget:DataGrid = DataGrid(event.currentTarget);dropTarget.hideDropFeedback(event); } ]]> </mx:Script>
<mx:HDividedBox right="10" left="10" top="54" bottom="10"> <mx:DataGrid width="100%" height="100%" dragEnabled="true" id="dragList" mouseDown="setDragInitator(event, 'dragList');" > <mx:ArrayCollection> <mx:Object> <mx:label>Item 0</mx:label> <mx:data>0</mx:data> </mx:Object>
<mx:Object> <mx:label>Item 1</mx:label> <mx:data>1</mx:data> </mx:Object> <mx:Object> <mx:label>Item 2</mx:label> <mx:data>2</mx:data> </mx:Object>
<mx:Object> <mx:label>Item 3</mx:label> <mx:data>3</mx:data> </mx:Object> <mx:Object> <mx:label>Item 4</mx:label> <mx:data>4</mx:data> </mx:Object>
<mx:Object> <mx:label>Item 5</mx:label> <mx:data>5</mx:data> </mx:Object> </mx:ArrayCollection> <mx:columns> <mx:DataGridColumn headerText="ID" dataField="data"/> <mx:DataGridColumn headerText="Title" dataField="label"/>
</mx:columns> </mx:DataGrid> <mx:DataGrid width="100%" height="100%" dragMoveEnabled="true" mouseDown="setDragInitator(event, 'dropList');"dragEnter="doDragEnter(event);" dragExit="doDragExit(event);" dragDrop="doDragDrop(event);" dragEnabled="true" id="dropList" dataProvider="{null}">
<mx:columns> <mx:DataGridColumn headerText="ID" dataField="data"/> <mx:DataGridColumn headerText="Title" dataField="label"/> </mx:columns> </mx:DataGrid> </mx:HDividedBox> <mx:Label x="56" y="24" text="List 1: Drag from list to List 2" fontWeight="bold"/> <mx:Label x="312" y="27" text="List 2: Drag to list from List 1, or Move within list" fontWeight="bold"/></mx:Application>
The code gets cut off by your wordpress application.
I just copied the code from FlexBuilder which is causing this.You can select all and copy it into another editor……
Code is not getting displayed properly
yeah it works well …nice code ….
Thanks for the example! Works just fine.
Thanks…Amar and Tomas
thanks.. Its excellent