0

私はGWTを初めて使用し、rpcServiceとeventBusを使用するMVPの実装を確認してきました。各タブに独自のサブビューがあるように、タブパネルをどのように実装できるのか疑問に思いました。パネルから派生したカスタムウィジェットを作成するか、プレゼンターに別のプレゼンターを使用させる方法を考え出すか、それをすべて処理する複合プレゼンタークラスを作成するかの間で悩んでいます。

実装を1つのビュー/プレゼンターのペア内に維持するのではなく、各タブの機能を分離する方法について誰かがアドバイスを持っていますか?

4

2 に答える 2

1

私は同じ状況でしたが、TabPanelをシミュレートするように実装を変更することにしました。ビューとプレゼンターが相互に対話する必要がない場合(たとえば、あるタブから別のタブに何かをドラッグする場合)、ビューを共有のSimplePanelにロードすることで、機能を分離する方が簡単だと思います。PlaceChangeEventsをリッスンし(強調表示されたタブを変更するため)、アプリが使用しているPlaceControllerにgoToコマンドを送信する(さまざまなヘッダーのクリックを処理するため)ウィジェットを使用して、TabPanelのタブ付き部分をシミュレートできます。

これを実装するのに数時間かかり、結果のコードははるかにクリーンになりました。私の最初の試みは、PlaceChangeEventsをリッスンしてから、適切なtabPanel.selectTab()関数を呼び出すことでしたが、さまざまなタブのプレゼンターを開始および停止する方法を理解しようとすると、混乱しすぎました。独自の複合ビューモデル。

于 2010-12-14T16:23:55.490 に答える
0

私はメインタブを偽造せずにこれを解決しましたが、GWTの基本的なSDKで提供されているものを使用しました。私はこれを行いました:

  1. プレゼンターのArrayListをMainTabPresenterに追加します
  2. MainTabPresenterの「go」メソッド内に各タブの現在のプラスビューを作成しました
  3. 各タブプレゼンターで「go(null)」と呼ばれます。
  4. それぞれのヌル状況を処理しました。
  5. MainTabViewに、DecoratedTabPanelにタブを追加するメソッドを実装しました

それはすべて魅力のように機能します。MainTabPresenterは非常に薄く、View/Presentersの完全な実装を独自のファイルに書き込むことができます。

于 2011-01-13T15:17:25.580 に答える