简体   繁体   中英

GWT MVP best practices to pass model data to the view

I'm implementing a GWT application using MVP pattern. In the presenter I'm sending the data (Model) from the RPC service to the view using setData(Object) method.

private void getmaterialTypes(final String formType) {
    new RPCCall<List<MaterialType>>() {

        public void onFailure(Throwable arg0) {
            Window.alert("Error : unsuccess...");
        }

        public void onSuccess(List<MaterialType> result) {
            display.setData(result, "MaterialType");
            Window.alert("Success Getting Material Types !");
        }

        @Override
        protected void callService(AsyncCallback<List<MaterialType>> cb) {
            materialTypeService.findMaterialTypesByFormType(formType, cb);
        }
    }.retry(3);
}

This would be perfect when passing only one Object or List from one service. What would be the best practice for sending more than one different object returned from different services.

I wrote a simple class that keeps track of multiple service requests, and triggers a callback when all of them have completed. Then you can call display.setData(thing1, thing2, thing3) etc. I like this because then my display code can just display a single "loading..." message instead of having to worry about data arriving at different times.

Alternatively, if your display can understand that it might not get all of its data at once, you could call display.setDataType1(thing1) when you receive thing1, display.setDataType2(thing2) when you receive thing2, etc.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM