gwt listbox uibinder

¿Cómo agrego elementos a GWT ListBox en la plantilla Uibinder.ui.xml?



(3)

¿Cómo agregar los elementos de la lista usando UiBinder?



Este es un cuadro de lista de traducciones de una enumeración, supongo que esto también funciona para un listbox con valores de cadena (versión de GWT: 2.1.0)

Solo necesita el procesador para traducir los valores de enumeración.

// UI XML

<g:ValueListBox ui:field="requesterType"/>

// CÓDIGO JAVA

@UiField(provided = true) ValueListBox<RequesterType> requesterType = new ValueListBox<RequesterType>(requesterTypeRenderer); static EnumRenderer<RequesterType> requesterTypeRenderer = new EnumRenderer<RequesterType>(); public Constructor() { requesterTypeRenderer.setEmptyValue(Translations.translateEmptyValue(RequesterType.class)); requesterType.setAcceptableValues(Arrays.asList(EnumUtil.getRequesterTypes())); }

/** * Translates enum entries. Use setEmptyValue() if you want to have a custom empty value. Default empty value is "". * * @param <T> * an enumeration entry which is to be registered in {@link Translations} */ public class EnumRenderer<T extends Enum<?>> extends AbstractRenderer<T> { private String emptyValue = ""; @Override public String render(T object) { if (object == null) return emptyValue; return Translations.translate(object); } public void setEmptyValue(String emptyValue) { this.emptyValue = emptyValue; } }


GWT ValueListbox también conocido como ComboBox o componente desplegable. Otro ejemplo que también demuestra llenar la lista.

UiBinder ...

<g:ValueListBox ui:field="subCategory"/>

Editor...

@UiField(provided = true) ValueListBox<String> subCategory = new ValueListBox<String>( new Renderer<String>() { @Override public String render(String object) { String s = "Cats"; if (object != null) { s = object.toString(); } return s; } @Override public void render(String object, Appendable appendable) throws IOException { render(object); } });

Constructor...

List<String> values = new ArrayList<String>(); values.add("Animal Shelters and Rescues"); values.add("Birds"); values.add("Cats"); values.add("Dogs"); values.add("Other Pets"); values.add("Rabbits"); subCategory.setAcceptableValues(values);