StackLayoutPanel和MVP

时间:2010-02-23 10:11:31

标签: gwt

认为可能有一些关于我完全被误解的MVP方法。

目前我正在努力将MVP模式应用到我的应用程序中由StackLayoutPanel(accordion)组成的部分。对我而言,每个堆栈都有一个演示者和一个视图似乎很自然......但是当用户切换堆栈面板的状态时,如何让不同的演示者做出反应呢?

如果有人可以在手风琴应用的情况下勾勒出MVP模式的应用,我真的非常感激!这真让我神经紧张! ; d

2 个答案:

答案 0 :(得分:0)

事件总线可能是您在演示者之间传递信息的方式 - 请注意不要将所有可能的事件转储到总线中。

http://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html

答案 1 :(得分:0)

GWT提供的MVP相关类具有基本应用程序状态链接到场所的限制。活动开始和停止,并显示视图,具体取决于您所在的位置,并且链接到浏览器历史记录/ URL片段标识符。

使用堆栈面板,您可能无需更改位置即可在堆栈中的小部件之间切换。尽管如此,在面板中为每个小部件分别设置活动和视图通常是有意义的。

解决方案是创建一个通用活动和一般视图来管理堆栈面板,然后创建堆栈面板中每个小部件的活动和视图。您的一般活动是正常的GWT活动,但它充当堆栈面板的嵌入式活动的小规模活动管理器。一般活动将通过事件总线和一般视图接收有关在堆栈面板中激活或停用小部件的事件,将根据需要启动和停止嵌入式活动。

事实上,

选项卡面板提出了类似的问题。您可以快速查看git clone http://lais.mora.edu.mx/gitrepo/pescador.git并查看java/webclient/src/main/java/mx/org/pescador/client/content/BodyContentActivityImpl.java及相关代码,了解我如何为标签面板实施此功能。