3

私はGWT、GWTPが初めてです。

複数回インスタンス化され、スロットに追加される PresenterWidget があります。インスタンスの量をプログラムで定義したいと考えています。ウィジェットを注入して新しいインスタンスを作成することだけを知っています。

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

new でインスタンス化できますか? ビューをインスタンス化する方法

とにかく多くのロジックが含まれていないため、最もスマートなソリューションのように思われたため、コンポジットを使用しようとしました。しかし、コンポジットをスロットに追加できません。

前もって感謝します

4

2 に答える 2

5

GWTP 1.0 では、Ginjector はもう必要ありません (gwtp によって自動生成されます)。

あなたの場合 (そして、クラスの複数のインスタンスが必要になるたびに) 最善の方法は、WidgetPresenter の Provider を注入することです。

@Inject Provider<MyWidgetPresenter> myWidgetPresenterProvider; 

MyWidegetPresenter の新しいインスタンスが必要になるたびに、 provider で 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 に答える