2011-07-21 13 views
0

私はMVPパターンでデザインされた最初のGWTアプリケーションを構築しています。今では、多くのフィールド(aprox。20)を持つDTOを作成するビューがあります。これらのウィジェット/値をすべて私のdtoに渡す最もクリーンで苦痛な方法は何でしょうか?GWT、MVP - 多くのウィジェット、ベストプラクティス

DTOフィールドごとにウィジェットを作成し、その値をonClickHandler?これは多くのボイルコープであり、別の方法が必要です。 FormPanelがありますが、GWTメーリングリストを読んでいる間は、ファイルアップロードでのみ使用してください。

私はプロジェクトのためにGWTPを使って基本的なMVPを単純化しています。

おかげ

+0

あなたが探しているものがまだわからないのですか(まだ質問はうまくいません:))UIバインドを使用している場合はUIバインダーを使用している場合Disptach(バックエンド)バインディングの後にGWT Platformフレームワークを表示しますGWT自身のMVPよりも成熟しています – Shahzeb

答えて

2

データ結合ソリューションをお探しの場合は、GWT's ui editorsをご覧ください。 GWTドキュメントから

GWTエディタフレームワークは、オブジェクトグラフに格納されたデータは、エディタのグラフに をマッピングすることを可能にします。典型的なシナリオはRPCメカニズムからUIに返されたオブジェクト の配線です。

エディタフレームワークでは、ボイラープレートコードを削減するために、遅延バインディングと命名規則の組み合わせが使用されます。システムは高度にカスタマイズ可能であるため、何らかの理由で命名規則に従うことができない場合、アノテーションを使用してBeanプロパティのエディタを指定することができます。

+0

それは、私が探していたようなものです。ありがとうTahir – onigunn

0

ビューインタフェースは、あなたが/編集を表示したいすべてのプロパティのための少なくとも一つの方法を含める必要があります。たとえば、DTOのプロパティが「名前」である場合、Viewインターフェイスにはこのプロパティのメソッドが含まれているはずです。

interface ExampleView extends View { 

    // for a textbox 
    HasValue<String> getName(); 

    // for a label 
    HasText getName(); 

    // maybe a save button, for updating the dto and further actions 
    HasClickHandlers getSaveButton(); 
} 

今すぐあなたのプレゼンターは、あなたのビューにDTOからのデータを設定することができますまたはテキストボックスの場合には、あなたがウィジェットから変更された値を読み取ることができます。

ウィジェットからDTOを更新することは、HasValueインターフェイスにバインドされたValueChangeHandlerを使用して実現できます。また、ViewImplにDTOを更新するためのプレゼンターに通知するボタンを付けることもできます。

このソリューションは、より多くのコード(定型文)につながりますが、モデルをビューから分離します。

ここで、さまざまなインターフェイスのAPIドキュメントHasValue,HasTextおよびHasClickHandlersです。

+0

私はこの問題を「問題」に向けて解決する方法を知っています。私のDTOにたくさんのフィールドがあると、私のビューインターフェイスはこれらのウィジェットをすべて保持するはずです。それは私には面倒です。 – onigunn

2

私はほとんどすべてのウィジェットにUiBinderを使用しています。プレゼンテーションとロジックの適切な分離を促し、ウィジェットを追跡し続けるのに役立ちます。

0

解決策を達成するためのさまざまな方法について考えてみましょう。

  • 最小限のコード行です。
  • 最小限の反復計算が必要です。任意のifとほとんどの基本ゲッターが何らかの条件を満たすメソッドを必要とするものよりもはるかに優れています。
  • どれが読みやすいのですか。小さなビルディングブロックの多くは、1つの大きなビルディングブロックよりも優れています。
  • これは、単独でテストするのが最も簡単です。

最高の解決策は、読んだり、変更したり、テストしたりするのが最も簡単な解決策です。

関連する問題