package ptaylor.bdd.grid { import org.robotlegs.mvcs.Mediator; import ptaylor.bdd.grid.services.IStreamingService; import ptaylor.bdd.grid.vo.StreamData; import ptaylor.bdd.grid.vo.StreamInfoVO; import ptaylor.bdd.screens.components.Screens; import ptaylor.bdd.screens.events.ScreenChangedEvent; public class StreamingServiceUIMediator extends Mediator { [Inject]public var view:IStreamingServiceUI; [Inject]public var service:IStreamingService; private static var instances:int = 0; override public function onRegister():void { trace('creating StreamingServiceUIMediator: ' + (++instances)); view.updateStreamInfo.add(onUpdateStream); service.update.add(onServiceUpdate); service.start(); super.onRegister(); } override public function onRemove():void { trace('destroying StreamingServiceUIMediator: ' + (--instances)); view.updateStreamInfo.remove(onUpdateStream); service.update.remove(onServiceUpdate); service.stop(); super.onRemove(); } private function onUpdateStream(info:StreamInfoVO):void { if(info.channel == '') service.stop(); else service.updateInfo(info); } private function onServiceUpdate(data:StreamData):void { view.setStreamData(data); } } }