在演示器之间传递控件/值,GWT模型视图演示器



这里的菜鸟。在我的一个用例中使用 GWT 实现模型视图演示器模式时,我遇到了这个特定问题。

我刚刚从Ray Ryan的Google IO演讲开始,并关注了Google Developers网站上的一些文章。我没有使用任何GWT附加组件,如GWTP或MVP4G或GIN或任何其他东西。只是按照GWT网站上的联系人示例进行操作,并尝试对我的情况进行建模。

这就是问题所在。

我有我的AppController onValueChage方法,像这样

   public void onValueChange(ValueChangeEvent<String> event) {
   if(token != null){
    presenter = null;
    if(token == "display")
    {
    presenter = new DefaultPresenter(rpcService, eventBus, new DefaultView());
    }
    else if(token == "popup")
    {
    presenter = new PopUpPresenter(rpcService, eventBus, new PopUpView());      
    }
    else if(token == "dialog")
    {
    presenter = new DialogPresenter(rpcService, eventBus, new DialogView());
    }
    if (presenter!= null) {
       presenter.go(container);
     }
    }
}

我的应用程序像这样流动,首先显示然后其中的选择会导致对话框,然后对话框设置一些变量。然后在隐藏对话框后,我需要返回到原始显示并继续。但问题是我无法使用相同的视图返回到我的原始 DisplayPresenter,因为每当历史记录发生更改时,我最终都会创建演示器的新实例。

所有粗体显示的内容都是单独的演示者,它扩展了演示者,并且它们都具有特定的视图。

问题?1. 帮助我摆脱每次历史更改时创建演示者新实例的困境。

  1. MVP 模式中有没有办法在具有持久值的演示者之间传递控件?

  2. 如何在事件触发时在应用程序控制器中加载演示器的现有实例?

  3. 如何在事件触发时在应用程序控制器中加载演示器的现有实例?

关于在演示者之间传递状态信息(问题 #1),查看地点可能会有所帮助。

最新更新