我是GWT的新手,我一直在审查使用rpcService和eventBus的MVP实现。我想知道如何实现选项卡面板,使每个选项卡都有自己的子视图。我一直在制作一个源自面板的自定义小部件,或者弄清楚如何让一个演示者使用另一个演示者,或者制作一个复合演示者类来为我处理它。
是否有人就如何分离每个标签的功能提出建议,而不是将实施保留在一个视图/演示者对中?
答案 0 :(得分:1)
我遇到了同样的情况,但决定将我的实现更改为模拟一个TabPanel。如果您的视图和演示者不需要彼此交互(例如,将某些内容从一个选项卡拖到另一个选项卡),那么我认为通过将View加载到共享的SimplePanel来分离功能会更容易。您可以使用侦听PlaceChangeEvents(更改突出显示的选项卡)的窗口小部件模拟TabPanel的选项卡部分,并将goTo命令发送到您的应用正在使用的PlaceController(以处理不同标题上的点击)。
实现这个需要几个小时,结果代码更清晰。我最初的尝试涉及监听PlaceChangeEvents然后调用相应的tabPanel.selectTab()函数,但是试图弄清楚如何启动和停止不同选项卡的演示者过于混乱 - 就像你建议的那样,你必须实现你自己的复合视图模型。
答案 1 :(得分:0)
我在没有伪造主标签的情况下解决了这个问题,但是使用了GWT基本SDK提供的标签。我是这样做的:
这一切都像魅力一样。 MainTabPresenter非常精简,可以将View / Presenters的完整实现写入自己的文件中。