2012-04-05 10 views
1

MVPを使用したGWTでのフォーム提出のベストプラクティスを探しています。ベストプラクティス - データ提出GWT MVP

私のアプリケーションでは、単純なfromがレンダリングされるダイアログボックスが開きます。 「OK」ボタンをクリックすると、要素値が読み込まれ、値オブジェクトに割り当てられます。このオブジェクトは、新しい場所に追加されます。

ビュー:

onOkButtonClicked(event){ 
     // read values from dialog box elements 
     // assign the values to ValueObject(name, number, address) 
     presenter.goto(new ListRecordPlace("list","addrecord", valueObject); 
    } 

活動:

ListRecordActivity(ListRecordPlace place, eventBus){ 
    this.place = place; 
} 

start(...){ 
    if(this.place.getAction().equals("addrecord")){ 
     // RPC call to add the new record: this.place.getNewRecord(); 
     // RPC returns list of records 
     view.setRecordList(); 
     container.setWidget(view.asWidget()); 
    } 
} 

これはMVP活動や場所でサーバーにデータを送信するための正しい方法ですか?

+0

GWTプレイスのための 'google-places-api'タグの使用をやめてください。楽しいことです! https://developers.google.com/maps/documentation/places/ –

答えて

0

MVPを使用しているため、RPCサービスの呼び出しはプレゼンターで行う必要があります。

ビューでOKクリック - >ビュー:発表者(presenter.okClicked())を呼び出し - >プレゼンター:更新値をして保存するRPCサービスを呼び出す - >プレゼンター:成功後を保存他の場所に行く。

次の場所に行くときは、Placeオブジェクトを使用してデータを転送しないでください。 新しい場所の処理を担当するオブジェクトは、データの更新と表示を担当する必要があります。

+0

私はこれを理解しようとしている。 GWTデザイナーはgoto(Place place)メソッドでプレゼンターを作成しています。私のビューがpresenter.okClicked()を呼び出した場合。私はこのメソッドが引数を取る必要はないと仮定します。 okClicked()メソッドは、View.getName()、view.getNumber()およびview.getAddress()を読み取ります。 RPCを呼び出します。次に、clientFactory.getPlaceController.goto(new RecordListPlace())を実行します。なぜpresenter.gotoにプレースの議論があるのですか?貴重なコメントをいただきありがとうございます。 – sreehari

+0

私はもっと理解しようとしています - Activity.addRecord()はビューから値を読み込み、RPCに新しいレコードを追加させます。その後、RecordListPlaceに行きます。アクティビティのstart(...)メソッドが呼び出され、サーバからレコードのリストを取得する別のRPCが作成されます。私の以前のaddRecord()が追加した後で更新されたリストを返した場合、私の2番目のRPCは単純に無駄です。私はここで理にかなっていると思う。 – sreehari

+0

これは別の問題です。その1つの答えはキャッシュを使用することです。そのため、リストのアクティビティは実際にサーバーに接続する必要はありません。 –

0

Placeアクションない(その名前が示唆するように)、それは位置です。

だから、それは絶対に間違った方法を行うことです。 OKボタンがクリックされたことに応答してRPCを実行し、、次にのみがレコードが表示されるListRecordPlaceに移動します。

+0

これは私のGWTでの最初の試みです。だから私はこれで非常に混乱しています。私の簡単なフォーム提出シナリオのコードスニペットを教えてください。 – sreehari

+0

フォームの値はどこで読むべきですか - ActivityMapperまたはActivityで?私のRPCはどこで行うべきですか? - ActivityMapperまたはActivityで?それともプレゼンターが必要ですか?私はアクティビティが発表者と同じだと思った。または、私はプレゼンターでメソッドを定義する必要があります - たとえば、addRecord(parameters ....)。このメソッドはRPCを実行し、ListRecordPlaceに移動します。これで私を助けてください。 – sreehari

+0

はい、そうです! (あなたの活動を発表者と共に) –

関連する問題