<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
<mx:XMLListCollection id="collection1"/>

<mx:XMLListCollection id="collection2"/>

<mx:Script>
		<![CDATA[
		[Bindable]
		public var labelField:String = null;
		public var labelAttribute:String = null;	
		
		private function moveForward():void{
			collection2.addItem(list1.selectedItem);
			collection1.removeItemAt(list1.selectedIndex);	
		}
		
		private function moveBackward():void{
			collection1.addItem(list2.selectedItem);
			collection2.removeItemAt(list2.selectedIndex);
		}	
		
		private function moveAllForward():void{
			for(var i:Number=0;i<collection1.length;i++){ 
				collection2.addItem(collection1[i]);
			}	
			collection1.removeAll()
		}
		
		
		private function moveAllBackward():void{
			for(var i:Number=0;i<collection2.length;i++){ 
				collection1.addItem(collection2[i]);
			}	
			collection2.removeAll()
		}
			
		]]>
	</mx:Script>

	<mx:List id="list1"
		dataProvider="{collection1}"
		width="45%" height="100%"
		dragEnabled = "true" 
		dragMoveEnabled="true"
		dropEnabled="true"
		labelField="{labelField}"
		/>
	<mx:VBox width="40">
		<mx:Button id="forwardButton" click="moveForward()"
			enabled="{list1.selectedItem!=null}">
			<mx:icon>@Embed(source='../assets/control_forward_blue.png')</mx:icon>	
		</mx:Button>
		<mx:Button  id="backwardButton" click="moveBackward()"
			enabled="{list2.selectedItem!=null}">
			<mx:icon>@Embed(source='../assets/control_backward_blue.png')</mx:icon>
		</mx:Button>	
		<mx:Button  id="forwardAllButton" click="moveAllForward()"
			enabled="{collection1.length>0}">
			<mx:icon>@Embed(source='../assets/control_fastforward_blue.png')</mx:icon>	
		</mx:Button>
		<mx:Button  id="backwardAllButton" click="moveAllBackward()"
			enabled="{collection2.length>0}">
			<mx:icon>@Embed(source='../assets/control_fastbackward_blue.png')</mx:icon>
		</mx:Button>
	</mx:VBox>
	<mx:List id="list2" 
		dataProvider="{collection2}"
		width="45%" height="100%" 		
		dragEnabled = "true" 
		dragMoveEnabled="true"
		dropEnabled="true"
		labelField="{labelField}"
		/>
</mx:HBox>