GWT:对多个页面使用相同的UI模板?

jpr*_*ova 4 eclipse gwt uibinder

如何使用与从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> {
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!简·普鲁萨科娃

Jas*_*all 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));
  }
}
Run Code Online (Sandbox Code Playgroud)

这看起来有点类似于将不同模板应用于同一小部件的解决方案.