Al usar UiBinder, ¿cuál es el método preferido para crear un diseño simple como este?FlowPanel frente a HTMLPanel en GWT UiBinder
FlowPanel:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.outer {
display: table;
height: 100%;
width: 100%;
}
.inner {
background: #DDD;
display: table-cell;
vertical-align: middle;
}
</ui:style>
<g:FlowPanel styleName="{style.outer}">
<g:FlowPanel styleName="{style.inner}">
<g:Label ui:field="someLabel"/>
</g:FlowPanel>
</g:FlowPanel>
</ui:UiBinder>
HTMLPanel:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.outer {
display: table;
height: 100%;
width: 100%;
}
.inner {
background: #DDD;
display: table-cell;
vertical-align: middle;
}
</ui:style>
<g:HTMLPanel styleName="{style.outer}">
<div class="{style.inner}">
<g:Label ui:field="someLabel"/>
</div>
</g:HTMLPanel>
</ui:UiBinder>
Editar: Sé que producen el mismo html cuando se representa, me pregunto si hay alguna justificación para utilizar un estilo más el otro.
Los javadocs dicen que FlowPanel es el panel más simple, pero en qué punto es preferible utilizar un HTMLPanel. p.ej.
<FlowPanel>
<FlowPanel>
<Widget>
</FlowPanel>
<FlowPanel>
<Widget>
</FlowPanel>
</FlowPanel>
vs
<HTMLPanel>
<div>
<Widget>
</div>
<div>
<Widget>
</div>
</HTMLPanel>
Gracias.
UiBinder - HTMLPanel vs. div es una pregunta bastante similar pero pregunta sobre el uso de un div frente a un HTMLPanel.
Además de cómo rinden, especialmente en un caso simple como este, ¿hay ventajas o desventajas para elegir uno sobre el otro? – DTing
Simplemente puede verificarlo usted mismo: inicie firebug en firefox o herramienta de desarrollador en cromo para inspeccionar estos elementos. Lo probé y descubrí que representan ambos como etiqueta div. Así que supongo que no tiene que preocuparse por los efectos secundarios, y puede concentrarse solo en la legibilidad y capacidad de mantenimiento de su código. –