J'essaye de refaire un panneau existant que j'ai fait avant que GWT 2.0 ait été libéré. Le panneau a quelques champs de texte et un panneau déroulant ci-dessous dans un VerticalPanel.Puis-je mélanger la présentation déclarative et programmatique dans GWT 2.0?
Ce que je voudrais faire est de rendre le panneau avec UIBinder scrollable puis l'ajouter à un VerticalPanel Voici un exemple que j'ai créé pour illustrer ceci:
public class ScrollTablePanel extends ResizeComposite{
interface Binder extends UiBinder<Widget, ScrollTablePanel > { }
private static Binder uiBinder = GWT.create(Binder.class);
@UiField FlexTable table1;
@UiField FlexTable table2;
public Test2() {
initWidget(uiBinder.createAndBindUi(this));
table1.setText(0, 0, "testing 1");
table1.setText(0, 1, "testing 2");
table1.setText(0, 2, "testing 3");
table2.setText(0, 0, "testing 1");
table2.setText(0, 1, "testing 2");
table2.setText(0, 2, "testing 3");
table2.setText(1, 0, "testing 4");
table2.setText(1, 1, "testing 5");
table2.setText(1, 2, "testing 6");
}
}
alors le xml:
<ui:UiBinder
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:mail='urn:import:com.test.scrollpaneltest'>
<g:DockLayoutPanel unit='EM'>
<g:north size="2">
<g:FlexTable ui:field="table1"></g:FlexTable>
</g:north>
<g:center>
<g:ScrollPanel>
<g:FlexTable ui:field="table2"></g:FlexTable>
</g:ScrollPanel>
</g:center>
</g:DockLayoutPanel>
</ui:UiBinder>
faire quelque chose comme cela dans le EntryPoint:
public void onModuleLoad() {
VerticalPanel vp = new VerticalPanel();
vp.add(new ScrollTablePanel());
vp.add(new Label("dummy label text"));
vp.setWidth("100%");
RootLayoutPanel.get().add(vp);
}
Mais quand j'ajoute le rouleau TablePanel au VerticalPanel, seul le premier FlexTable (test1) est visible sur la page, pas le ScrollTablePanel entier.
Existe-t-il un moyen de faire ce travail où il est possible de mélanger la présentation déclarative et programmatique dans GWT 2.0?