4

如何将相同的 UI 模板(*.ui.xml 文件)与从 Composite 扩展的多个 Java 对象一起使用?

我需要构建几个页面,它们应该以相同的布局显示基本相同的信息,但是在一个页面上,一些字段是可编辑的,而在不同的页面上,其他字段是可编辑的。我想在 ui.xml 中只指定一次布局,并在不同的 *.java 类中创建不同的行为。

Eclipse 给我一个语法错误“FirstAppUI.ui.xml is missing”

@UiTemplate("Template.ui.xml")
public class FirstAppUI extends Composite {
  interface FirstAppUIUiBinder extends
          UiBinder<Widget, FirstAppUI> {
  }
}

谢谢!简·普鲁萨科娃

4

1 回答 1

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));
  }
}

这似乎有点类似于将不同模板应用于同一个小部件的解决方案。

于 2010-04-13T19:52:01.883 回答