2012-10-22 23 views
2

我對GWT活動和場所的理解是,對於屏幕上的給定區域,您有ActivityManagerActivityMapper。您可以在屏幕上顯示多個區域,這意味着您可以有多個ActivityManagersActivityMappers(每個區域一個)。所以,每當有PlaceChangeActivityManagers詢問他們各自的ActivityMapper它應該被顯示給定Place什麼活動。只要你的Places都有一個共同的佈局,它們以不同的方式重複執行不同的活動,這很好。我的問題是我們如何處理不同的Places使用完全不同的佈局的情況?我的第一個想法是隻有更多ActivityManagersActivityMappers,如果Place不使用特定區域,那麼該區域的ActivityMapper將簡單地返回null當我們更改爲Place。如果有更好的方法,我會感激任何智慧。GWT在屏幕布局每個地方改變時使用活動和場所

+3

我不認爲有_better_方式。見http://tbroyer.posterous.com/gwt-21-activities-nesting-yagni –

+0

謝謝你,那篇文章很完美。 – Tom

回答

1

我發現它更容易使用單一ActivityMapper/ActivityManager對整個應用程序。

在典型情況下,你有一個「菜單」區和「主」區域。菜單區域非常基本:點擊菜單項將用戶發送到新的地方。它還會突出顯示新選擇的項目並重置先前選擇的項目的樣式。所有這些都可以在一個簡單的小部件中輕鬆完成,您可以在需要此菜單的所有視圖中包含這些小部件。爲菜單區域分開使用ActivityMapper和ActivityManager只會使所有內容複雜化,而沒有提供任何好處。

我使用「頂部菜單」區域和「左菜單/樹」區域相同的方法:一個小工具,告訴主持人數據在「主」區域顯示哪些。

我在我的應用程序超過50個不同的地方,它確實有助於有一個簡單的架構:每個地方對應一個視圖和一個活動。

+0

您是否爲避免單個地方的多個活動而做出了重要的決定,以便您可以使用該結構,或者在使用單個ActivityManager/ActivityMapper時是否還有一些方法可以支持多個活動? – Tom

+0

我避免使用多個活動。我從來沒有遇到過一個UI設計,其中兩個區域同時參與一種複雜而獨立的行爲,每個區域都需要一個專門的活動。我猜這樣的設計是可能的,但我相信爲菜單或樹創建一個專門的活動會產生更多的問題。 –

相關問題