6

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

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

我尝试使用活动和地点来进行这种类型的显示,但没有成功。部分问题在于示例 Hello World 文章最终让我追赶我的尾巴,太多的新概念让我的大脑无法消化。

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

以前,我使用 AppController 来处理选项卡更改和每个选项卡的单个演示者。GWT 2.1 中的新架构让我更加困惑,它应该。

4

2 回答 2

1

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

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

因此,例如:

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

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

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

于 2013-04-24T16:51:28.840 回答
1

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

我认为问题在于尝试将具有自己的导航概念的活动/地点与TabPanel具有另一种导航概念的 a 混合在一起。起初我试图将它们放在一起,覆盖选项卡按钮行为以触发 PlaceController,这反过来又切换了选项卡,但是......它很混乱。借助独立的导航栏/内容窗格,PlaceController 可以随心所欲地做任何事情。您只需手动切换视图,而不是让 TabPanel 为您完成。

于 2011-02-02T14:28:40.637 回答