Usted debe crear su propia subclase de ComplexPanel
. Esto le dará algo que funciona de manera similar a HorizontalPanel
o VerticalPanel
, solo se basa en elementos de lista en lugar de elementos de tabla. Debería verse algo como esto:
public class OListPanel extends ComplexPanel {
final OListElement ol = Document.get().createOLElement();
public OListPanel() {
setElement(ol);
}
public void add(Widget w) {
LIElement li = Document.get().createLIElement();
ol.appendChild(li);
add(w, (Element)li.cast());
}
public void insert(Widget w, int beforeIndex) {
checkIndexBoundsForInsertion(beforeIndex);
LIElement li = Document.get().createLIElement();
ol.insertBefore(li, ol.getChild(beforeIndex));
insert(w, (Element)li.cast(), beforeIndex, false);
}
public boolean remove(Widget w) {
Element li = DOM.getParent(w.getElement());
boolean removed = super.remove(w);
if (removed) {
ol.removeChild(li);
}
return removed;
}
}
No lo he probado pero básicamente es correcto. WRT el marcado informados en su pregunta, este código producirá una diferencia ligera, ya que las etiquetas GWT tienen su propio elemento <div>
:
<ol>
<li><div>MyLabel</div></li>
<li><input type="text"></li>
</ol>
Es posible que prefiera InlineLabel
, que se basa en el elemento de <span>
menos intrusivo.
La solución perfecta para mí. Gracias. – flash