手动实例化PresenterWidget(GWTP)

时间:2013-07-30 13:42:37

标签: gwt gwtp gwt-platform

我是GWT GWT的新手。

我有一个PresenterWidget,它被多次实例化并被添加到一个插槽中。我想以编程方式定义实例数量。我只知道我通过注入它来创建一个新的Widget实例。

@Inject MyWidgetPresenter first; 
@Inject MyWidgetPresenter second; 
// ...

我可以用新实例化它吗?如何实例化视图?

我尝试使用复合材料,因为它似乎是最聪明的解决方案,因为它无论如何都不包含太多逻辑。但是我无法在插槽中添加复合材料。

提前致谢

2 个答案:

答案 0 :(得分:4)

在GWTP 1.0中,不再需要Ginjector(由gwtp自动生成)。

在你的情况下(每次你需要一个类的多个实例),最好是注入你的WidgetPresenter的提供者:

@Inject Provider<MyWidgetPresenter> myWidgetPresenterProvider; 

每次需要MyWidegetPresenter的新实例时,请调用提供程序上的get()方法:

MyWidgetPresenter myWidgetPresenter = myWidgetPresenterProvider.get();

答案 1 :(得分:0)

您可以获取ClientGinjector引用并调用getYourPresenter()方法。如果它被声明为@Singleton它将返回相同的实例,如果不是将创建一个新实例,与使用new相同,但是将所有参数注入构造函数。 它与将@Inject添加到字段相同。

添加了: 如果您没有所需的演示者,可以在ClientGinjector处,在该界面上编写一个getter方法。例如:

public interface ClientGinjector extends Ginjector {
    ....
    SideMenuPresenter getSideMenuPresenter();
    ....
}