package com.adobe.cairngorm.samples.dashboard.model
{
    import com.adobe.cairngorm.model.ModelLocator;
    
     [Bindable]
    public class ModelLocator implements com.adobe.cairngorm.model.ModelLocator
    {
        public static function getInstance() : com.adobe.cairngorm.samples.dashboard.model.ModelLocator
        {
            if ( modelLocator == null )
                modelLocator = new com.adobe.cairngorm.samples.dashboard.model.ModelLocator();
                
            return modelLocator;
       }
       
       public function ModelLocator() 
       {
           if ( com.adobe.cairngorm.samples.dashboard.model.ModelLocator.modelLocator != null )
                throw new Error( "Only one ModelLocator instance should be instantiated" );
                
            initialize();
       }
       
       private function initialize() : void
       {
            stockQuote = new StockQuote();
            stockPurchase = new StockPurchase( stockQuote );           
       }
       
        private static var modelLocator : com.adobe.cairngorm.samples.dashboard.model.ModelLocator;
        
        public var stockQuote : StockQuote;
        public var stockPurchase : StockPurchase;
    }
}