<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
implements="mx.rpc.IResponder"
creationComplete="onCreationComplete()"
backgroundGradientColors="[#ffffff,#ffffff]"
layout="absolute" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import com.eyestreet.flex.ui.admin.LoginPanel;
import com.eyestreet.flex.events.admin.LoginAttemptEvent;
import mx.collections.XMLListCollection;
import mx.managers.PopUpManager;
import mx.rpc.AsyncToken;
import mx.rpc.http.mxml.HTTPService;
import mx.rpc.IResponder;
import org.alfresco.framework.service.authentication.*;
import org.alfresco.framework.service.error.*;
[Bindable]
public var actionItemsCollection:XMLListCollection;
public function result(data:Object):void
{
var xml:XML = XML(data.message.body);
var list:XMLList = XMLList(xml.actionItem);
actionItemsCollection = new XMLListCollection(list);
}
public function fault(fault:Object):void
{
trace(fault.fault.faultString);
}
private var _alfTicket:String;
private var _loginPanel:LoginPanel;
private var _authenticationService:AuthenticationService = AuthenticationService.instance;
private var _errorService:ErrorService = ErrorService.instance;
private function onCreationComplete():void
{
showLoginPanel();
_authenticationService.addEventListener(LoginCompleteEvent.LOGIN_COMPLETE, onLoginComplete);
_errorService.addEventListener(ErrorRaisedEvent.ERROR_RAISED, onLoginError);
}
private function showLoginPanel():void
{
_loginPanel = PopUpManager.createPopUp(this, LoginPanel, true) as LoginPanel;
_loginPanel.addEventListener(LoginAttemptEvent.LOGIN_ATTEMPT, onLoginAttempt);
PopUpManager.centerPopUp(_loginPanel);
}
private function onLoginAttempt(event:LoginAttemptEvent):void
{
var userName:String = event.userName;
var password:String = event.password;
_authenticationService.login(userName, password);
}
private function onLoginComplete(event:LoginCompleteEvent):void
{
_alfTicket = event.ticket;
hideLoginPanel();
loadActionItems();
}
private function onLoginError(event:ErrorRaisedEvent):void
{
var loginErrorMessage:String = event.errorType + "\n";
loginErrorMessage += event.error.message + ":\n" ;
loginErrorMessage += event.error.getStackTrace();
_loginPanel.loginFailed(loginErrorMessage);
}
private function hideLoginPanel():void
{
_loginPanel.removeEventListener(LoginAttemptEvent.LOGIN_ATTEMPT, onLoginAttempt);
PopUpManager.removePopUp(_loginPanel);
_loginPanel = null;
}
private function loadActionItems():void
{
var params:Object = new Object;
params.alf_ticket = _alfTicket;
var service:HTTPService = new HTTPService;
service.url = "data/actionItems.xml";
service.method = "GET";
var token:AsyncToken = service.send(params);
token.addResponder(this);
}
]]>
</mx:Script>
<mx:Image id="appLogo" source="assets/AlfrescoPlusFlex.png" y="21" horizontalCenter="0" />
<mx:DataGrid id="actionItemsGrid" dataProvider="{actionItemsCollection}" top="170" right="20" bottom="10" left="20">
<mx:columns>
<mx:DataGridColumn dataField="priority" headerText="Priority" />
<mx:DataGridColumn dataField="description" headerText="Description" />
<mx:DataGridColumn dataField="issueDate" headerText="Issued" />
<mx:DataGridColumn dataField="dueDate" headerText="Due" />
</mx:columns>
</mx:DataGrid>
</mx:Application>