2010-12-10 11 views
0

私はGWTを使い慣れていないので、rpcServiceとeventBusを使ったMVPの実装を見直しています。私は各タブが独自のサブビューを持つようにタブパネルをどのように実装できるのか不思議でした。私は、パネルから派生したカスタムウィジェットの作成と、プレゼンターが別のプレゼンターを使用する方法を考え出すこと、またはそれをすべて私のために処理する複合プレゼンタークラスを作ることの間にうっとりしています。GWT DecoratedTabPanelの複合ビュー/プレゼンターを実装する方法は?

誰かが1つのビュー/プレゼンターのペア内で実装を維持するのではなく、タブごとに機能を分ける方法について助言していますか?

答えて

0

GWTの基本SDKで提供されているものを使用して、メインタブを偽造することなくこれを解決しました。私がすることでこれをやった:

  1. MainTabPresenter
  2. にプレゼンターのArrayListに追加のそれぞれに「(null)を行く」と呼ばれるMainTabPresenter
  3. の「GO」メソッド内の各タブの存在に加えてビューを構築しますタブプレゼンター
  4. それぞれについてヌル状況を処理しました。
  5. それはすべてが魔法のように動作DecoratedTabPanel

にタブを追加するMainTabViewのメソッドを実装。 MainTabPresenterはとても薄く、ビュー/プレゼンターの完全な実装を自分のファイルに書き込むことができます。

1

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

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

関連する問題