我是GWT GWT的新手。
我有一个PresenterWidget,它被多次实例化并被添加到一个插槽中。我想以编程方式定义实例数量。我只知道我通过注入它来创建一个新的Widget实例。
@Inject MyWidgetPresenter first;
@Inject MyWidgetPresenter second;
// ...
我可以用新实例化它吗?如何实例化视图?
我尝试使用复合材料,因为它似乎是最聪明的解决方案,因为它无论如何都不包含太多逻辑。但是我无法在插槽中添加复合材料。
提前致谢
答案 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();
....
}