3

我是 GWT、GWTP 的新手。

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

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

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

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

提前致谢

4

2 回答 2

5

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

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

@Inject Provider<MyWidgetPresenter> myWidgetPresenterProvider; 

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

MyWidgetPresenter myWidgetPresenter = myWidgetPresenterProvider.get();
于 2013-07-31T09:10:34.090 回答
0

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

补充:如果您那里没有所需的演示者ClientGinjector,您可以在该接口处简单地编写一个 getter 方法。前任:

public interface ClientGinjector extends Ginjector {
    ....
    SideMenuPresenter getSideMenuPresenter();
    ....
}
于 2013-07-30T14:14:12.717 回答