【问题标题】:GWT MVP with multiple EntryPoints具有多个入口点的 GWT MVP
【发布时间】:2012-09-11 23:22:26
【问题描述】:

我们有一个包含多个入口点的应用程序。每个 EntryPoint 都包含一个 MVP 配置,其中包含自己的 PlaceHistoryHandler、PlaceHistoryMapper 和 PlaceController。根据配置历史处理程序的顺序,位置处理是重叠的。我认为问题是因为 PlaceHistoryHandler 的实现在 PlaceHistoryMapper 找不到地点时调用 PlaceController.goTo(NOWHERE) 引起的,因为这个地点与另一个入口点的 PlaceHistoryMapper 相关联。我该如何解决这个问题? MVP与多个EntryPoints一起使用是否正确?

更多信息

Thomas,感谢您的澄清。我们的地景是一个服务器端的 OSGI 应用程序,其中应用程序模块是热部署的,并且包含自己的 GWT 视图和入口点。 我们的主客户端 GWT 应用程序有一个动态侧边菜单,其中的超链接指向与在主区域中呈现视图的外部 EntryPoints 相关联的令牌。

  SIDE MENU
      |
      V
  -------------------------------------------
  |  A1  |                                  |
  |------|                                  |
  |  A2  |                                  |
  |------|                                  |
  |  B1  |                                  |
  |------|         MAIN REGION              |
  |  B2  |                                  |
  |------|                                  |
  |  C1  |                                  |
  |------|                                  |
  |  C2  |                                  |
  -------------------------------------------

解决此类应用程序的正确方法是什么?

【问题讨论】:

标签: gwt mvp


【解决方案1】:

你有两个选择:

(A)

不要将 PlaceController 用于侧边菜单。使其成为一个小部件,其中包含指向模块中位置的链接。您可以在每个模块中包含此小部件。单击菜单项时,将重新加载整个页面。这样浏览器历史记录将按预期工作。

(B)

如果您无法重组应用,请考虑使用启动板/开始菜单方法。您使用单个视图创建主入口点,该视图显示用户可用的应用程序的漂亮菜单。每个菜单项基本上都是指向相应模块(入口点)的起始 URL 的链接。当用户点击它时,这个模块会加载并占据整个屏幕。我还会为每个模块添加一个图标以返回启动板。

这样,用户可以为启动板添加书签,也可以直接为任何模块添加书签。

请注意,在这种方法中,URL 历史记录将按预期工作,即如果用户进入 Launchpad -> A1 -> A2 -> Launchpad -> B1 等,用户可以点击后退按钮,浏览器将返回一步。

或者,每个模块都可以在新的浏览器选项卡中打开。也许您可以让用户在首选项中的某处选择相同的选项卡或新选项卡。

请注意,智能手机和平板电脑的所有用户都熟悉 Launchpad/开始菜单方法,Mac OS 和即将在 Windows 8 中也使用这种方法。另一个好处是每个模块/应用程序都有更多的屏幕空间可以使用.

【讨论】:

    猜你喜欢
    • 2011-03-18
    • 2013-03-22
    • 2020-11-13
    • 2021-12-12
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2011-04-21
    • 2016-03-19
    相关资源
    最近更新 更多