【问题标题】:How to implement a Compound View/Presenter for a GWT DecoratedTabPanel?如何为 GWT DecoratedTabPanel 实现复合视图/演示器?
【发布时间】:2011-05-23 16:40:16
【问题描述】:

我是 GWT 的新手,我一直在查看使用 rpcService 和 eventBus 的 MVP 实现。我想知道如何实现一个选项卡面板,以便每个选项卡都有自己的子视图。我一直在制作一个从面板派生的自定义小部件,或者弄清楚如何让演示者使用另一个演示者,或者创建一个复合演示者类来为我处理这一切。

是否有人对如何分离每个选项卡的功能而不是将实现保留在一对视图/演示者中提出建议?

【问题讨论】:

    标签: java gwt mvp gwt-mvp


    【解决方案1】:

    我遇到了同样的情况,但决定将我的实现更改为模拟一个 TabPanel。如果您的视图和演示者不需要相互交互(例如,将某些内容从一个选项卡拖到另一个选项卡),那么我认为通过将视图加载到共享的 SimplePanel 中来分离功能会更容易。您可以使用一个小部件模拟 TabPanel 的选项卡部分,该小部件侦听 PlaceChangeEvents(以更改突出显示的选项卡)并将 goTo 命令发送到您的应用正在使用的 PlaceController(以处理对不同标题的点击)。

    实现这一点花费了几个小时,并且生成的代码更加简洁。我最初的尝试涉及监听 PlaceChangeEvents 然后调用适当的 tabPanel.selectTab() 函数,但是试图弄清楚如何启动和停止不同选项卡的演示者太混乱了——就像你建议的那样,你必须实现您自己的复合视图模型。

    【讨论】:

      【解决方案2】:

      我没有伪造主选项卡,而是使用 GWT 的基本 SDK 提供的选项卡解决了这个问题。我是这样做的:

      1. 将演示者的 ArrayList 添加到 MainTabPresenter
      2. 在 MainTabPresenter 的 'go' 方法中构造了每个选项卡的当前加视图
      3. 在每个选项卡演示者上调用“go(null)”。
      4. 处理了每个 null 的情况。
      5. 在 MainTabView 中实现了将选项卡添加到 DecoratedTabPanel 的方法

      这一切都像一个魅力。 MainTabPresenter 非常薄,允许将 View/Presenter 的完整实现写入到它们自己的文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-31
        • 1970-01-01
        • 1970-01-01
        • 2014-04-01
        • 2012-07-06
        • 2016-03-01
        • 1970-01-01
        相关资源
        最近更新 更多