2012-02-26 5 views
0

自家製のMVCからGWT WebアプリケーションをGWT Platformに適応しようとしています。GWTプラットフォームでのモデルセーブと更新の扱い

私は自分のアプリケーションビューをプレゼンターに移植でき、基本的にはPlaceRequest経由でビューにアクセスすることができました。そして、URL(#)を変更する。

しかし、このGWTプラットフォームを使用してモデルを処理する方法がわかりません。一般的なMVPで、RPCを介してサーバーからデータを取得するプレゼンターにgo()メソッドがあります。ここでは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

2

私はonResetメソッドでRPC呼び出しを行います。 See the presenter lifecycle

個人的に私はreversed MVP patternを使ってイベントを扱います。あなたのビューインタフェースでgetSubmitButtonため、以下の署名で

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

:しかし、あなたはまた、このようハンドラを呼び出すことができます

HasClickHandlers getSubmitButton() 
関連する問題