如何(multiple = true)使用eventBus.addHandler使用参数初始化presenter和view?

时间:2011-12-15 11:57:14

标签: gwt mvp mvp4g

使用Mvp4g架构,(仅)视图的一个实例(使用@Presenter注释注入)与其演示者相关联。    就我而言,我有一个带有Presenter EntityPresenter的EntityView。    每当用户单击导航器树的Leaf节点时,    我在TabSet中添加了一个新Tab。这个新标签将包含一个EntityView。    所以,我会在TabSeT中拥有尽可能多的EntityView。

我为EntityPresenter设置了multiple=true。    EntityView的构造函数接受一个参数。

@Inject
public EntityView(final Record view) {
  //some initialization
}

问题是,我在哪里(来自另一位主持人):

EntityPresenter presenter = eventBus.addHandler(EntityPresenter.class);

我有一个参数Record params我想传递给EntityView的构造函数,怎么做?    并使用@Inject注释构造函数(接受参数)会将EntityView注入EntityPresenter?

1 个答案:

答案 0 :(得分:0)

我建议使用EventHandler - 这是一个没有mvp4g视图的演示者 - 它会获得一个事件showEntity(长键)。在onShowEntity(...) - 方法中,您可以使用以下语句创建演示者:

EntityPresenter presenter = eventBus.addHandler(EntityPresenter.class);

通过该实例的引用,您可以在演示者中设置密钥。 但请记住,使用multiple=true.

时,您必须自己管理演示者实例