Al utilizar el widget FlexTable, solo puede usar la plantilla ui.xml para establecer su ubicación, formato y atributos. Todavía deberá proporcionar los contenidos (y encabezados) de la tabla de forma pragmática en su código java.
Hay dos métodos para esto:
1: depender de la plantilla para crear instancias de un nuevo, FlexTable vacío para cuando llame initWidget(...)
. Puede seguir con llamadas apropiadas al table.setText(0,0, "Header 1")
, etc. inmediatamente después para especificar su contenido.
2: una instancia del mismo FlexTable antes de llamar initWidget(...)
y también anotar la variable de miembro de mesa con proporcionado = true. Haga el seguimiento con las mismas llamadas al setText()
.
Ejemplo (Aplicando un enfoque de 2)
public final class SomeWidget extends Composite {
@UiField (provided=true) FlexTable table;
SomeWidget() {
// When using provide=true, the table must be instantiated
// BEFORE calling initWidget.
setupTable();
initWidget(binder.createAndBindUi(this));
}
private void setupTable() {
table = new FlexTable();
table.setText(0, 0, "Header 1");
table.setText(0, 1, "Header 2");
// Create a temp blank row:
table.insertRow(1);
}
private static final Binder binder = GWT.create(Binder.class);
interface Binder extends UiBinder<Widget, SomeWidget> {}
}
Y en su archivo ui.xml:
<ui:UiBinder
xmlns:gwt="urn:import:com.google.gwt.user.client.ui"
xmlns:ui="urn:ui:com.google.gwt.uibinder">
<ui:style>
.table-style {
border: 1px solid black;
}
</ui:style>
<gwt:HTMLPanel>
Other random html
<gwt:FlexTable ui:field="table" styleName="{style.table-style}" borderWidth="2" />
</gwt:HTMLPanel>
</ui:UiBinder>
¿Hay una manera de tener un diseño estático que defino en el 'ui archivo .xml'? ¿O de otra forma tener una tabla simple que tenga casillas de verificación y texto, por ejemplo? – displayname