package com.adobe.cairngorm.samples.dashboard.command
{
import com.adobe.cairngorm.business.Responder;
import com.adobe.cairngorm.commands.Command;
import com.adobe.cairngorm.control.CairngormEvent;
import com.adobe.cairngorm.samples.dashboard.business.StockMarketDelegate;
import com.adobe.cairngorm.samples.dashboard.events.GetStockQuoteEvent;
import com.adobe.cairngorm.samples.dashboard.model.ModelLocator;
import com.adobe.cairngorm.samples.dashboard.model.StockTransaction;
import com.adobe.cairngorm.samples.dashboard.model.StockQuote
public class GetStockQuoteCommand implements Command, Responder
{
private var model : ModelLocator = ModelLocator.getInstance();
private var stockTransaction : StockTransaction;
public function execute( event : CairngormEvent ) : void
{
stockTransaction = model.stockTransaction;
stockTransaction.stockQuote.isPending = true;
var stockQuoteEvent : GetStockQuoteEvent = GetStockQuoteEvent( event );
var symbol : String = stockQuoteEvent.symbol;
var delegate : StockMarketDelegate = new StockMarketDelegate( this );
delegate.getQuoteForSymbol( symbol );
}
public function onResult( event : * = null ) : void
{
stockTransaction.stockQuote.lastStockQuote = event as Number;
stockTransaction.stockQuote.isPending = false;
stockTransaction.status = StockQuote.SUCCESS;
}
public function onFault( event : * = null ) : void
{
stockTransaction.stockQuote.lastStockQuote = NaN;
stockTransaction.status = StockQuote.ERROR;
stockTransaction.stockQuote.isPending = false;
}
}
}