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.