如何使用与从Composite扩展的多个Java对象相同的UI模板(* .ui.xml文件)?
我需要构建几个页面,这些页面应该以相同的布局显示基本相同的信息,但是在一个页面上,某些字段将是可编辑的,而在另一个页面上,其他字段将是可编辑的。我想在ui.xml中只指定一次布局,并在不同的* .java类中创建不同的行为。
Eclipse在
上给我一个语法错误“缺少FirstAppUI.ui.xml”@UiTemplate("Template.ui.xml") public class FirstAppUI extends Composite { interface FirstAppUIUiBinder extends UiBinder<Widget, FirstAppUI> { } }
谢谢! 简·普鲁萨科娃
答案 0 :(得分:8)
我认为您需要将@UiTemplate
注释放在Binder
上,而不是放在Composite
类
此代码适用于我:
public class TestUiBinder extends Composite {
@UiTemplate("SomeTemplate.ui.xml")
interface TestUiBinderUiBinder extends UiBinder<Widget, TestUiBinder> {}
private static TestUiBinderUiBinder uiBinder = GWT.create(TestUiBinderUiBinder.class);
public TestUiBinder() {
initWidget(uiBinder.createAndBindUi(this));
}
}
public class AnotherTestUiBinder extends Composite {
@UiTemplate("SomeTemplate.ui.xml")
interface TestUiBinderUiBinder extends UiBinder<Widget, AnotherTestUiBinder> {}
private static TestUiBinderUiBinder uiBinder = GWT.create(TestUiBinderUiBinder.class);
public AnotherTestUiBinder() {
initWidget(uiBinder.createAndBindUi(this));
}
}
这似乎与applying different templates to the same widget的解决方案有些相似。