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