package  com.adobe.cairngorm.samples.dashboard.model
{
    public class StockPurchase
    {
        [Bindable]
        public var isValid : Boolean;
        [Bindable]
        public var statusMessage : String;        
        private var _isPending : Boolean;
        private var isQuantityValid : Boolean;
        private var stockQuote : StockQuote;

        public function StockPurchase( stockQuote : StockQuote )
        {
            this.stockQuote = stockQuote;
        }
        
        [Bindable]
        public function get isPending() : Boolean
        {
            return _isPending;
        }
        
        public function set isPending( value : Boolean ) : void
        {
            _isPending = value;
            validate();
        }
        
        public function validateQuantity( isValid : Boolean ) : void
        {
            isQuantityValid = isValid
            validate();
        }
        
        private function validate() : void
        {
            var hasStockQuote : Boolean = !isNaN( stockQuote.lastStockQuote );
            isValid = ( isQuantityValid && !isPending && hasStockQuote ) ? true : false;
        }
    }
}