2010-12-10 67 views
0

我是GWT的新手,我一直在評論使用rpcService和eventBus的MVP實現。我想知道如何實現一個選項卡面板,使每個選項卡都有自己的子視圖。我一直在製作一個派生自一個面板的自定義小部件,或者想出如何讓演示者使用另一個演示者,或者製作一個處理它的複合演示者類。如何爲GWT DecoratedTabPanel實現Compound View/Presenter?

有沒有人有關於如何爲每個選項卡分開功能的建議,而不是在一個視圖/演示者對中保留實現?

回答

0

我解決了這個問題,但沒有僞造主選項卡,而是使用了GWT基本SDK提供的選項卡。我這樣做的:

  1. 主持人的ArrayList添加到MainTabPresenter
  2. 構建的各個選項卡目前的加鑑於MainTabPresenter
  3. 叫「走」法中「去(null)的每個的標籤主持人。
  4. 處理每個空的情況。
  5. 實現的方法在MainTabView的標籤添加到DecoratedTabPanel

它像一個魅力的所有的作品。 MainTabPresenter非常簡潔,並且允許查看/演示者的完整實現被寫入他們自己的文件中。

1

我處於同樣的情況,但決定將我的實現更改爲模擬一個TabPanel。如果您的視圖和演示者不需要彼此交互(例如將某個標籤拖動到另一個標籤),那麼我認爲通過將View加載到共享的SimplePanel中可以更輕鬆地分離功能。您可以使用偵聽PlaceChangeEvents(更改突出顯示的選項卡)的小部件來模擬TabPanel的選項卡式部分,並將goTo命令發送到您的應用正在使用的PlaceController(以處理對不同頭部的點擊)。

這花了幾個小時來實現這一點,結果代碼更乾淨。我最初的嘗試涉及監聽PlaceChangeEvents,然後調用相應的tabPanel.selectTab()函數,但試圖弄清楚如何啓動和停止不同製表符的演示者太混亂了 - 就像你所說的那樣,你必須實現您自己的複合視圖模型。