GWT 2.1 MVP(活动/地点)和标签显示

时间:2011-02-02 14:09:36

标签: gwt mvp gwt-mvp

在现有项目中,我们使用MVP(手工制作)相当不错。我们理解并完成了我们所需要的。对于一个新项目,我正在考虑使用GWT 2.1(活动和地点)中内置的MVP框架。

我们的应用程序主要是选项卡式显示,每个选项卡都绑定到一个视图窗口小部件。

我尝试过使用“活动和地点”而没有成功进行此类展示。问题的一部分是示例Hello World文章最终让我追逐我的尾巴,为我的大脑消化了太多新概念。

Hello World示例IMO不是一个足够的介绍,并不处理许多现实世界的用例。我希望有人可以指出我使用MVP进行选项卡式显示的任何示例应用程序的方向。 Thomas Broyer在他的博客上有一些优秀的帖子,但这些仍然让我有些困惑。

以前我使用过AppController来处理每个标签的标签更改和单个演示者。 GWT 2.1中的新架构让我更加困惑。

3 个答案:

答案 0 :(得分:1)

我正在使用gwt Activities / Places框架进行选项卡式显示,效果很好,但是:我决定放弃我们一直使用的TabLayoutPanel小部件并创建自己的导航栏(看起来像标签) )和内容窗格。效果是一样的 - 它看起来相同 - 但实现更清晰。

我认为问题在于尝试将具有自己导航理念的活动/地点与TabPanel混合在一起,这有另一种导航理念。起初我尝试将它们放在一起,覆盖Tab键按钮行为以触发PlaceController,而PlaceController又转换了标签,但是......它很混乱。使用独立的导航栏/内容窗格,PlaceController可以按照自己的意愿完成所有操作。您只需手动切换视图,而不是让TabPanel为您执行此操作。

答案 1 :(得分:1)

我在这里问了一个类似的问题GWT 2.1 Places example without Activities但它实际上也回答了这个问题。

答案 2 :(得分:1)

我也遇到了这个问题,但设法使每个Tab使用一个活动,并使用演示者(或更多)显示每个活动以显示选项卡的组件。

关于Riley Lark发现的解决方案,我选择使用Decorator模式,因此保留原始的TabbedPanel。怎么样 ?每个活动都被注入(GIN)一个包含TabbedPanel的装饰器的演示者。

所以,例如:

  • Tab1Activity注入了Tab1Presenter,而Tab1Presenter又注入了Tab1Decorator,它使用Tab1ContentPanel来装饰TabbedPanel(此面板包含要在Tab1选项卡上显示的所有小部件)

  • Tab2Activity注入了Tab2Presenter,而Tab2Presenter又注入了Tab2Decorator,它使用Tab2ContentPanel修饰相同的TabbedPanel(此面板包含要在Tab2选项卡上显示的所有小部件)

看起来很复杂但是,在创建第一个装饰器之后,它确实得到了回报,我能够保留TabbedPanel并利用框架中隐含的URL历史管理。