2012-02-26 64 views
0

我試圖將我的GWT Web應用程序從我自己生成的MVC調整爲GWT Platform使用GWT平臺處理模型保存和更新

我已經設法移出我的應用程序視圖與演示者,並且基本上能夠通過PlaceRequest訪問視圖。並改變URL(#)。

但是我不知道如何處理在常見的MVP中使用這個GWT平臺的模型我知道在演示程序中有一個go()方法,通過RPC從服務器獲取數據。

在這裏的GWT平臺演示是由Eclipse插件自動生成的方法:

  • 構造
  • revealInParent
  • onBind
  • onReset

應該在哪裏我把將獲取和更新我的模型的RPC代碼。說,在主持人,我有:

ProfilePresenter.java:

public class ProfilePresenter 
     extends 
     Presenter<ProfilePresenter.MyView, ProfilePresenter.MyProxy> { 

    public interface MyView extends View { 
     HasText getFullname(); 
     HasText getLocation(); 
     HasText getAboutme(); 
     HasText getLastlogin(); 
    } 

    private User user; // Model which represents the User information etc. 

當與演示相關的視圖顯示我需要從服務器獲取用戶模型和更新模型並隨後更新通過它暴露的接口的視圖。

另外,假設我在視圖中有一些按鈕,然後可以通過主持人通過HasClickHandler訪問,我應該在哪裏放置事件處理程序?

回答

0

悉尼覆蓋了大部分的您的問題。

一般onReset方法是進行後端調用的好地方。
有時,當後端調用需要更長時間並且只有在數據加載後纔想顯示視圖時,可以使用manual reveal
但對於配置文件頁面,我不認爲這是必要的。

我也同意反向MVP模式。使用反向MVP模式測試演示者比使用HasXXXHandlers接口更容易。

+0

其實你是對的,我的意思是我現在想要使用GWTP的主要原因是我的應用程序RPC確實需要時間來獲取。我的意思是,它的數據來自幾個RPC調用,使UI在某個時間點顯示空白字段。這是我家的MVC的主要問題。 – xybrek 2012-02-27 10:51:20

2

我會把RPC調用放在onReset方法中。 See the presenter lifecycle

我個人使用reversed MVP pattern處理事件。但你也可以調用處理程序是這樣的:

getView().getSubmitButton().addClickHandler(new ClickHandler() { 
     @Override 
     public void onClick(ClickEvent event) { 
     } 
    }); 

具有以下簽名的getSubmitButton在您的視圖界面:

HasClickHandlers getSubmitButton()