<?xml version="1.0" encoding="utf-8"?>
<mx:Panel title="User Roles" status="{user.givenName}"
xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Metadata>
[Event("add")]
[Event("remove")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import org.puremvc.as3.demos.flex.employeeadmin.model.vo.UserVO;
import org.puremvc.as3.demos.flex.employeeadmin.model.enum.RoleEnum;
public static const ADD:String = "add";
public static const REMOVE:String = "remove";
[Bindable] public var user:UserVO;
[Bindable] public var selectedRole:RoleEnum;
[Bindable] public var userRoles:ArrayCollection;
private function sendEvent( eventName:String ):void
{
dispatchEvent( new Event( eventName, true ) );
}
private function selectRoleToRemove():void
{
roleCombo.selectedItem = RoleEnum.NONE_SELECTED;
selectedRole=RoleEnum( roleList.selectedItem );
}
private function selectRoleToAdd():void
{
roleList.selectedIndex = -1;
selectedRole=RoleEnum (roleCombo.selectedItem );
}
public function reset():void
{
roleCombo.selectedItem = RoleEnum.NONE_SELECTED;
}
]]>
</mx:Script>
<mx:List id="roleList" width="100%" height="100%" labelField="value"
dataProvider="{userRoles}" change="selectRoleToRemove()"/>
<mx:ControlBar>
<mx:ComboBox id="roleCombo" labelField="value" enabled="{user != null}"
dataProvider="{ RoleEnum.comboList }" change="selectRoleToAdd()"/>
<mx:Button label="Add" click="sendEvent( ADD )"
enabled="{roleCombo.selectedItem != RoleEnum.NONE_SELECTED}"/>
<mx:Button label="Remove" click="sendEvent( REMOVE )"
enabled="{roleList.selectedIndex != -1}"/>
</mx:ControlBar>
</mx:Panel>