package ptaylor.bdd.screens { import flash.events.Event; import org.robotlegs.mvcs.Mediator; import ptaylor.bdd.screens.events.ScreenChangedEvent; public class ScreenMediator extends Mediator { [Inject]public var screen:IScreen; override public function onRegister():void { screen.screenChangedSignal.add(onScreenChange); eventMap.mapListener(eventDispatcher, ScreenChangedEvent.SCREEN_CHANGED, whenScreenChanges, ScreenChangedEvent); } override public function onRemove():void { screen.screenChangedSignal.remove(onScreenChange); eventMap.unmapListener(eventDispatcher, ScreenChangedEvent.SCREEN_CHANGED, whenScreenChanges, ScreenChangedEvent); } private function onScreenChange(screen:IScreen):void { dispatch(new ScreenChangedEvent(screen)); } private function whenScreenChanges(event:ScreenChangedEvent):void { screen.selectedScreen = event.screen; } } }