May I also suggest that you look at an approach based on GWT exporter
so you can make calls between the modules directly.  I have been
playing around with making a GWT based plugable portal architecture
based on this approach and have been partially successful in my
limited experimentation.

On Jul 9, 9:35 am, grandanat <[email protected]> wrote:
> Hello all.
> I Have a simple scenario:
> -a GWT application with an application controller that handles history
> and initialize modules. ( a module is an entity formed by a presenter
> + view - classic MVP, nothing special)
> -from a module should be opened another module and pass init data to
> it, and then after child module finishes its job to return another
> response data.
>
> I followed two approaches and i would like to comment them.
>
> 1.eventBuss approach - pass data within events.
> i have StartChildModuleEvent event that encapsulates a module parent
> ID, and some init data, and an ExitChildModuleEvent event that
> encapsulates some return data.
>
> 2 callback approach.
> i added to my modules a callBack handler
>
> public abstract class ModuleCallBackHandler<D, T> implements
> DataCallBackHandler<T> {
>
>   private ModuleID parentID;
>
>   private D initData;
>   private T returnData;
>
>   public ModuleCallBackHandler(ModuleID parentID) {
>     this.parentID = parentID;
>   }
>
>   public ModuleCallBackHandler(ModuleID parentID, D initData) {
>     this.parentID = parentID;
>     this.initData = initData;
>   }
>
>   public void onCancel(){
>   }
>
>   public void onFailure(Throwable caught){
>     Window.alert(AppGin.injector.getAppConstants().msg_moduleError() +
> " : " + caught.getMessage());
> //    caught.printStackTrace();
>   }
>
>   public ModuleID getParentID() {
>     return parentID;
>   }
>
>   public D getInitData() {
>     return initData;
>   }
>
>   public T getReturnData() {
>     return returnData;
>   }
>
> }
>
> and when i want to init a child module i instantiate a new callback
>
> AppGin.injector.getAppController().doStartChildModule(ModuleID.ITEMSEARCH,
>             new ModuleCallBackHandler<String, Item>(getModuleID(),
> itemID) {
>
>               @Override
>               public void onSuccess(Item result) {
>                 //do some stuff - update this module with received
> data
>               }
>
>             });
>
> I would like some opinions regarding this two approaches.
>
> Thanks all

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to