2014-10-31 43 views
0

我必須爲例如創建多級視圖。 TopLevelView包含一系列水平放置的按鈕(作爲菜單工作)。單擊buttonX-TopLevelView時,它會創建另一個視圖調用MiddleView,該視圖將被附加到TopView的容器中。 Similary MiddleView與TopView具有相同的結構。當我們點擊一​​個打開InnerLevel-View的按鈕Y-MiddleView時。使用mvp在gwt的多級視圖中進行歷史管理

現在假設我們稱之爲網址:127.0.0.1:7777/demoapp#innerLevel

我認爲流動如下

僞代碼:

在AppController的歷史標記生成器串innerLevel首先檢查。

if (token.equals("innerLevel"){ 
    presenter = new TopLevelPresenter(eventBus,rpcService,new TopLevelView(),token); 
    presenter.go(); 
} 

現在TopLevelPresenter的構造器將通過活動創造MiddleLevel如果token.equals( 「innerLevel」)

eventBus.fireEvent(MiddleLevelEvent); 

MiddleLevelEvent應該包含較低級別的名稱。

再次在應用程序控制器中我將檢查歷史記錄Tokenizer。

if (token.equals("middleLevel"){ 
    presenter = new MiddleLevelPresenter(eventBus,rpcService,new MiddleLevelView(),**what to pass here**); 
    presenter.go(); 
} 

但是我感覺我的方法有想過是不是good.Can任何人幫我分不清什麼是MVP採用使用多級視圖在GWT應用程序的標準方式。

回答

0

當我第一次開始與地方合作時,我走了和你一樣的路線,但非常高興找到Thomas Broyer詳細記錄的解決方案。這個想法需要多一點代碼,但是讓代碼更清潔靈活。您需要爲顯示器的不同區域創建多個ActivityMapper。這聽起來很複雜,但一旦你嘗試了它,你會發現它幾乎適用於任何類型的佈局。令牌概念是一個新穎的概念,但會給我頭痛的經驗。

GWT 2.1 Activities – nesting? YAGNI!