package tripvisModel.controllers { import flash.events.EventDispatcher; import mx.collections.ArrayCollection; import tripvisModel.MoneyAmount; import tripvisModel.TripItem; import tripvisModel.TripItemType; [Event(name="tripItemUpdated", type="tripvisModel.controllers.VisControllerEvent")] [Event(name="tripItemAdded", type="tripvisModel.controllers.VisControllerEvent")] [Event(name="tripItemRemoved", type="tripvisModel.controllers.VisControllerEvent")] public class VisController extends EventDispatcher { private var _basketController: BasketController; private var _timelineController: TimelineController; public function VisController(basketController: BasketController, timelineController: TimelineController) { _basketController = basketController; _timelineController = timelineController; _basketController.addEventListener(BasketControllerEvent.TRIP_ITEM_UPDATED, basketController_tripItemUpdated); _timelineController.addEventListener(TimelineControllerEvent.TRIP_ITEM_UPDATED, timelineController_tripItemUpdated); _basketController.addEventListener(BasketControllerEvent.TRIP_ITEM_ADDED, basketController_tripItemAdded); _basketController.addEventListener(BasketControllerEvent.TRIP_ITEM_REMOVED, basketController_tripItemRemoved); } private function basketController_tripItemAdded(event: BasketControllerEvent): void { dispatchEvent( new VisControllerEvent('tripItemAdded', event.tripItem) ); } private function basketController_tripItemRemoved(event: BasketControllerEvent): void { dispatchEvent( new VisControllerEvent('tripItemRemoved', event.tripItem) ); } private function basketController_tripItemUpdated(event: BasketControllerEvent): void { dispatchEvent( new VisControllerEvent('tripItemUpdated', event.tripItem) ); } private function timelineController_tripItemUpdated(event: TimelineControllerEvent): void { dispatchEvent( new VisControllerEvent('tripItemUpdated', event.tripItem) ); } public function get tripItemList(): ArrayCollection { return _basketController._basketTripItems; } } }