我必须为例如创建多级视图。 TopLevelView包含一系列按钮水平放置(作为菜单)。单击buttonX-TopLevelView,它创建另一个ViewView调用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的构造函数将通过事件创建MiddleLeveleventBus.fireEvent(MiddleLevelEvent);
MiddleLevelEvent应包含较低级别的名称。
再次在app控制器中我将检查历史记录Tokenizer。
if ( token.equals("middleLevel"){
presenter = new MiddleLevelPresenter(eventBus,rpcService,new MiddleLevelView(),**what to pass here**);
presenter.go();
}
但是我觉得我认为方法并不好。任何人都可以帮我讲一下使用MVP在GWT应用程序中使用多级视图的标准方法。
答案 0 :(得分:0)
当我第一次开始与地方合作时,我和你一样走了一条路,但很高兴能找到Thomas Broyer详细记录的解决方案。这个想法需要更多的代码,但使您的代码更加清晰和灵活。您需要为显示的不同区域创建多个ActivityMappers。这听起来很复杂但是一旦你尝试它,你会发现它几乎适用于任何类型的布局。令牌概念是一种新颖的概念,但在我的经验中会给你带来麻烦。