GWT: utilizar la misma plantilla de interfaz de usuario para múltiples páginas?

StackOverflow https://stackoverflow.com/questions/2632461

  •  26-09-2019
  •  | 
  •  

Pregunta

¿Cómo puedo utilizar la misma plantilla de interfaz de usuario (archivo * .ui.xml) con múltiples objetos Java que se extiende desde Compuesto?

Tengo que construir varias páginas que se deben mostrar básicamente la misma información con la misma disposición, pero en una sola página algunos campos será editable, y en una página diferente a otros campos será editable. Me gustaría especificar la disposición sólo una vez en ui.xml, y crear diferentes comportamientos en diferentes clases * .java.

Eclipse me está dando un error de sintaxis "FirstAppUI.ui.xml no se encuentra" en la

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

Gracias! Jane Prusakova

¿Fue útil?

Solución

Creo que es necesario colocar la anotación @UiTemplate en el Binder, no en la clase Composite

Este código funciona para mí:

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

Esto parece un tanto similar a la solución para aplicar diferentes plantillas a la misma widget de .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top