package tripvisModel { import tripvisModel.controllers.BasketController; import tripvisModel.controllers.CircleVisController; import tripvisModel.controllers.CostController; import tripvisModel.controllers.MapController; import tripvisModel.controllers.TimelineController; import tripvisModel.controllers.VisController; // Singleton class to hold the model: public class TripVisModel { private static var _model: TripVisModel = new TripVisModel(); // Controllers: public var mapController: MapController; public var basketController: BasketController; public var timelineController: TimelineController; public var visController: VisController; public var costController: CostController; public var circleVisController: CircleVisController; private var _initialized: Boolean = false; // Return TripVisModel instance: public static function get instance(): TripVisModel { if (! _model._initialized ) { _model.mapController = new MapController(); _model.basketController = new BasketController(); _model.timelineController = new TimelineController(_model.basketController); _model.visController = new VisController(_model.basketController, _model.timelineController); _model.costController = new CostController(_model.visController); _model.circleVisController = new CircleVisController(_model.timelineController); _model._initialized = true; } return _model; } } }