[英]History mangement in multi-level view in gwt using mvp
我必須為例如創建多級視圖。 TopLevelView包含一系列水平放置的按鈕(用作菜單)。單擊buttonX-TopLevelView時,它會創建另一個View調用MiddleView,並將其追加到TopView的容器中。 類似的MiddleView與TopView具有相同的結構。 當我們單擊一個按鈕Y-MiddleView時,它將打開InnerLevel-View。
現在假設我們調用URL:127.0.0.1:7777/demoapp#innerLevel
我認為流程如下
偽代碼:
首先檢查appController歷史記錄Tokenizer中的字符串innerLevel。
if ( token.equals("innerLevel"){
presenter = new TopLevelPresenter(eventBus,rpcService,new TopLevelView(),token);
presenter.go();
}
現在,如果token.equals(“ innerLevel”),TopLevelPresenter的構造函數將通過事件來創建MiddleLevel
eventBus.fireEvent(MiddleLevelEvent);
MiddleLevelEvent應該包含較低級別的名稱。
再次在應用控制器中,我將檢查歷史記錄Tokenizer。
if ( token.equals("middleLevel"){
presenter = new MiddleLevelPresenter(eventBus,rpcService,new MiddleLevelView(),**what to pass here**);
presenter.go();
}
但是我感覺到我認為不好的方法。有人可以幫我說一下使用MVP在GWT應用程序中使用多級視圖的標准方法是什么。
第一次開始與地方合作時,我走的路與您相同,但很高興找到Thomas Broyer充分記錄的解決方案。 這個想法需要更多的代碼,但會使您的代碼更加簡潔和靈活。 您需要為顯示的不同區域創建多個ActivityMappers。 乍一看,這聽起來很復雜,但是一旦您嘗試了一下,您就會發現它幾乎可以在任何布局中很好地工作。 代幣概念是一個新穎的概念,但會讓您頭痛不已。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.