package com.wf.view
{
import com.wf.facade.ApplicationFacade;
import flash.events.Event;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
//LoginPanel视图的Mediator
public class LoginPanelMediator extends Mediator implements IMediator
{
public static const NAME:String = 'LoginPanelMediator';
public function LoginPanelMediator(viewComponent:LoginPanel)
{
super(NAME,viewComponent);
LoginPanel.addEventListener(LoginPanel.TRY_LOGIN,onTryLogin);
}
//列出该Mediator关心的Notification
override public function listNotificationInterests():Array
{
return [
LoginProxy.LOGIN_FAILED,
LoginProxy.LOGIN_SUCCESS
];
}
//处理Notification
override public function handleNotification(note:INotification):void
{
switch(note.getName())
{
case LoginProxy.LOGIN_FAILED:
{
LoginPanel.loginVO = new LoginVO();
loginPanel.loginStatus = LoginPanel.NOT_LOGGED_IN;
break;
}
case LoginProxy.LOGIN_SUCCESS:
{
loginPanel.loginStatus = LoginPanel.LOGGED_IN;
break;
}
}
}
//用户单击Login按钮,尝试登陆
private function onTryLogin(event:Event):void{
sendNotification(ApplicationFacade.LOGIN,loginPanl.loginVO);
}
//把viewComponent转化为它真正的类型
protected function get loginPanel():LoginPanel{
return viewComponent as LoginPanel;
}
}
}
PureMVC学习[三]用户与View Component和Mediator交互
最新推荐文章于 2023-01-19 15:45:20 发布