重複するコード/クラスを減らすために、1つの所有者クラスに対してのみ複数のXMLテンプレートを使用しようとしました。公式のGWTガイドはこれを行う方法を指摘しています。
public class FooPickerDisplay extends Composite{
@UiTemplate("RedFooPicker.ui.xml")
interface RedBinder extends UiBinder<Widget, FooPickerDisplay> {}
private static RedBinder redBinder = GWT.create(RedBinder.class);
@UiTemplate("BlueFooPicker.ui.xml")
interface BlueBinder extends UiBinder<Widget, FooPickerDisplay> {}
private static BlueBinder blueBinder = GWT.create(BlueBinder.class);
@UiField Button button1;
}
'@UiField'はコンパイルエラーを引き起こし、「フィールドbutton1にはテンプレートファイルBlueFooPicker.ui.xmlに対応するフィールドがありません」と表示されます。
私のRedFooPicker.ui.xmlとBlueFooPicker.ui.xmlの内容はまったく異なるため、RedFooPicker.ui.xmlにはUiField = "button1"がありますが、BlueFooPicker.ui.xmlにはbutton1がありません。
だから私の質問は、この種のエラーを引き起こすことなく、同じ所有者クラスに対してまったく異なる内容の複数のXMLテンプレートを使用できる方法があるかどうかです。