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.
