使用mvp在swt中进行多级视图的历史管理

时间:2014-10-31 08:50:45

标签: java gwt mvp gwt-mvp

我必须为例如创建多级视图。 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的构造函数将通过事件创建MiddleLevel
eventBus.fireEvent(MiddleLevelEvent);

MiddleLevelEvent应包含较低级别的名称。

再次在app控制器中我将检查历史记录Tokenizer。

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

但是我觉得我认为方法并不好。任何人都可以帮我讲一下使用MVP在GWT应用程序中使用多级视图的标准方法。

1 个答案:

答案 0 :(得分:0)

当我第一次开始与地方合作时,我和你一样走了一条路,但很高兴能找到Thomas Broyer详细记录的解决方案。这个想法需要更多的代码,但使您的代码更加清晰和灵活。您需要为显示的不同区域创建多个ActivityMappers。这听起来很复杂但是一旦你尝试它,你会发现它几乎适用于任何类型的布局。令牌概念是一种新颖的概念,但在我的经验中会给你带来麻烦。

GWT 2.1 Activities – nesting? YAGNI!