2010-06-14 14 views
17

Come aggiungere gli elementi della lista usando UiBinder?Come aggiungere elementi a GWT ListBox nel modello Uibinder .ui.xml?

+1

http://code.google.com/webtoolkit/doc/ latest/DevGuideUiBinder.html # Hello_Widget_World mostra come aggiungere elementi ListBox dal file Java, anche se presumo che tu stia chiedendo se è possibile specificarli nel modello di UiBinder. – aem

+0

sì .... sto chiedendo se siamo in grado di dare gli elementi nello stesso uibinder – Kasturi

risposta

17

Si tratta di una casella di riepilogo di traduzioni di un'enumerazione , Suppongo che questo funzioni anche per una listbox con valori stringa (versione di GWT: 2.1.0)

Tu serve solo il renderer per tradurre i valori di enumerazione.

// UI CODICE XML

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

// 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; 
    } 

} 
+0

Dude ... fantastico codice sniplet ... Sei stato molto generoso. –

+0

Gunnie, come sposeresti la tua soluzione con l'internazionalizzazione dichiarativa descritta [qui] (http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinderI18n.html)? – expert

4

GWT ValueListbox altrimenti conosciuto come un ComboBox o di un componente a discesa. Un altro esempio che mostra anche la compilazione dell'elenco.

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); 
Problemi correlati