GWT: использовать один и тот же шаблон интерфейса для нескольких страниц? - PullRequest
4 голосов
/ 13 апреля 2010

как я могу использовать один и тот же шаблон пользовательского интерфейса (* .ui.xml) с несколькими объектами Java, выходящими из Composite?

Мне нужно построить несколько страниц, которые должны отображать в основном одну и ту же информацию с одинаковым макетом, но на одной странице некоторые поля будут редактируемыми, а на другой странице - другими. Я хотел бы указать макет только один раз в ui.xml и создать различные варианты поведения в разных классах * .java.

Eclipse выдает мне синтаксическую ошибку "FirstAppUI.ui.xml отсутствует" на

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

спасибо! джейн прусакова

1 Ответ

8 голосов
/ 13 апреля 2010

Я думаю, вам нужно разместить аннотацию @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));
  }
}

Это похоже на решение для применения различных шаблонов к одному и тому же виджету .

...