import { Module } from './Module'; import { ModuleEvent } from './ModuleEvent'; import { EventVo } from '../vo/EventVo'; import { EventManager } from '../manager/EventManager'; export class Proxy { /**当前模块*/ private _module: Module; /** * * @param $module */ constructor($module: Module) { this._module = $module; } /** * 获取Proxy注册的事件列表 * @return 返回Proxy注册的事件集 * */ registerEvents(): ModuleEvent[] { return null; } /**获取类*/ getClass(): any { return this['constructor']; } /**获取代理所属模块*/ getModule(): Module { return this._module; } /** * 接收事件 子类重写此类 * @param $eventClass * */ receivedEvents($event: ModuleEvent): void { } /**启动事件,一个代理中可能有N种事件 */ startEvents(): void { var _events: ModuleEvent[] = this.registerEvents(); if (_events != null) { for (var i: number = 0, l: number = _events.length; i < l; i++) { var _eventVo: EventVo = new EventVo(); _eventVo.proxy = this; _eventVo.eventClass = _events[i]; EventManager.registerEvent(_eventVo); } } } /** * 发送事件 * @param $event * */ dispatchModuleEvent($event: ModuleEvent): void { EventManager.dispatchModuleEvent($event); } }