You dont necessarily need to subclass CairngormEvent, but you always need to specify an event type.
The cairngormEvent.data property is handy for passing objects to your commands.
 
List all event types on the controller.
Subclass only when CairngormEvent doesn't suit your requirements.
 
Regards,
 
Bjorn Schultheiss


From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of ben.clinkinbeard
Sent: Thursday, 28 September 2006 3:55 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Cairngorm Best Practices.

This is off the top of my head so if someone out there knows or can
explain better feel free to correct me...

I've not looked at the actual code but from your snippet it appears
that they are in fact still using constants, just not ones that are
defined in the ShopController. When you have an event that needs to
carry data with it, you have to subclass Event. In that case you would
also define the event type in that subclass, which is what they seem
to be doing. If you had an event that didn't require a data payload to
be sent with it, you'd define the constant in the controller. Make sense?

HTH,
Ben

--- In [EMAIL PROTECTED]ups.com, "laidezmon" <[EMAIL PROTECTED]..> wrote:
>
> Here is a question about Cairngorm best practices.
>
> In the documentation this is in part four feature driven development,
> page 3 for cairngorm .99 it says this:
>
> "First recognize the best practice appraoch of naming all events as
> constants on the FrontController instance ShopController."
>
> Later down it says:
>
> "The compiler catches any mistyped events noisily at compile time
> rather than failing silently at run time. While Cairngorm does not
> require this, its a best practice we highly recommend."
>
> I downloaded the latest Cairngorm store for 2.0 however, and thier
> shopController instance is not written in the same format. I was
> wondering why? In the 2.0 version they do NOT declare constants, but
> in the .99 version they do. What is the best practice?
>
> Below are the two different ShopController code samples. The .99 uses
> static vars, while the 2 version does not. In fact the entire method
> for calling the associated commands from events are different. So
> which is the actual best practice?
>
> Help!
> JS.
>
>
> Here is the .99 ShopController example:
>
> class org.nevis.cairngorm.samples.store.control.ShopController extends
> FrontController
> {
> public function ShopController()
> {
> initialiseCommands();
> }
>
>
>
//----------------------------------------------------------
>
> public function initialiseCommands()
> {
> addCommand( ShopController.EVENT_GET_PRODUCTS, new
> GetProductsCommand() );
> addCommand( ShopController.EVENT_ADD_PRODUCT_TO_SHOPPING_CART,
> new AddProductToShoppingCartCommand() );
> addCommand(
> ShopController.EVENT_DELETE_PRODUCT_FROM_SHOPPING_CART, new
> DeleteProductFromShoppingCartCommand() );
> addCommand( ShopController.EVENT_FILTER_PRODUCTS, new
> FilterProductsCommand() );
> addCommand( ShopController.EVENT_SORT_PRODUCTS, new
> SortProductsCommand() );
> addCommand( ShopController.EVENT_VALIDATE_ORDER, new
> ValidateOrderCommand() );
> addCommand( ShopController.EVENT_VALIDATE_CREDIT_CARD, new
> ValidateCreditCardCommand() );
> addCommand( ShopController.EVENT_COMPLETE_PURCHASE, new
> CompletePurchaseCommand() );
> }
>
>
>
//----------------------------------------------------------
>
> public static var EVENT_GET_PRODUCTS = "getProducts";
> public static var EVENT_ADD_PRODUCT_TO_SHOPPING_CART =
> "addProductToShoppingCart";
> public static var EVENT_DELETE_PRODUCT_FROM_SHOPPING_CART =
> "deleteProductFromShoppingCart";
> public static var EVENT_FILTER_PRODUCTS = "filterProducts";
> public static var EVENT_SORT_PRODUCTS = "sortProducts";
> public static var EVENT_VALIDATE_ORDER = "validateOrder";
> public static var EVENT_VALIDATE_CREDIT_CARD = "validateCreditCard";
> public static var EVENT_COMPLETE_PURCHASE = "completePurchase";
>
>
> }
>
>
> Here is the version 2.0 ShopController Example:
>
> package com.adobe.cairngorm.samples.store.control
> {
> import com.adobe.cairngorm.control.FrontController;
> import com.adobe.cairngorm.samples.store.command.*
> import com.adobe.cairngorm.samples.store.event.UpdateShoppingCartEvent;
> import com.adobe.cairngorm.samples.store.event.FilterProductsEvent;
> import com.adobe.cairngorm.samples.store.event.GetProductsEvent;;
> import com.adobe.cairngorm.samples.store.event.SortProductsEvent;
> import com.adobe.cairngorm.samples.store.event.ValidateOrderEvent;
> import com.adobe.cairngorm.samples.store.event.ValidateCreditCardEvent;
> import com.adobe.cairngorm.samples.store.event.PurchaseCompleteEvent;
>
> /**
> * @version $Revision: $
> */
> public class ShopController extends FrontController
> {
> public function ShopController()
> {
> initialiseCommands();
> }
>
> public function initialiseCommands() : void
> {
> addCommand( GetProductsEvent.EVENT_GET_PRODUCTS,
> GetProductsCommand );
> addCommand(
> UpdateShoppingCartEvent.EVENT_ADD_PRODUCT_TO_SHOPPING_CART,
> AddProductToShoppingCartCommand );
> addCommand(
> UpdateShoppingCartEvent.EVENT_DELETE_PRODUCT_FROM_SHOPPING_CART,
> DeleteProductFromShoppingCartCommand );
> addCommand( FilterProductsEvent.EVENT_FILTER_PRODUCTS,
> FilterProductsCommand );
> addCommand( SortProductsEvent.EVENT_SORT_PRODUCTS,
> SortProductsCommand );
> addCommand( ValidateOrderEvent.EVENT_VALIDATE_ORDER,
> ValidateOrderCommand );
> addCommand(
> ValidateCreditCardEvent.EVENT_VALIDATE_CREDIT_CARD,
> ValidateCreditCardCommand );
> addCommand( PurchaseCompleteEvent.EVENT_COMPLETE_PURCHASE,
> CompletePurchaseCommand );
> }
> }
>
> }
>

__._,_.___

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com





SPONSORED LINKS
Software development tool Software development Software development services
Home design software Software development company

Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

Reply via email to