このアプリケーションは GIN を使用して、GWT リソース バンドルを動的にインスタンス化します。これは、さまざまな表示モードに対して実行時にさまざまなスタイルシートをロードできるようにするために行われます。MyApp.ginjector.getResources()
一般に、これは、標準の ではなく のようなものを使用して、リソースのシングルトン インスタンスを作成できることを意味しますGWT.create(MyAppResources.class)
。
これは、UiBinder コード以外のすべてでうまく機能します。を使用しており、 のインスタンスをではなく GIN で作成し<ui:with ref="res" type="com.company.MyAppResources" />
たいと考えています。MyAppResources
GWT.create
GWT UiBinder docsによると、これを処理するには 2 つの方法があります。@UiField(provided=true)
コンポーネントで aまたは aを使用@UiFactory
します。これらの方法は両方とも、私のチーム (私を含む) のメンバーがこのボイラープレート コードをすべてのウィジェットに忘れずに配置する必要があるため、望ましくありません。さらに悪いことに、作成コードが省略された場合でも、すべてが機能しているように見えGWT.create
ます。これは、必要なリソースではなく、リソースのインスタンスが作成されるためです。
@UiFactory
すべてのコンポーネントが使用し、GIN に委譲する何らかのグローバル メソッドを作成する方法を探しています。または、特定のクラスにフックしGWT.create
、クライアント側のランタイム コードにインスタンスを作成させる何らかの方法も同様に機能し、オブジェクトの作成を static に委譲することができますGinjector
。