2012-05-12 77 views
3

GWT發電單元提供了以下作爲建設細胞用於CellList的示例:與UiBinder的

/** 
    * A simple data type that represents a contact. 
    */ 
    private static class Contact { 
    private static int nextId = 0; 

    private final int id; 
    private String name; 

    public Contact(String name) { 
     nextId++; 
     this.id = nextId; 
     this.name = name; 
    } 
    } 

    /** 
    * A custom {@link Cell} used to render a {@link Contact}. 
    */ 
    private static class ContactCell extends AbstractCell<Contact> { 
    @Override 
    public void render(Context context, Contact value, SafeHtmlBuilder sb) { 
     if (value != null) { 
     sb.appendEscaped(value.name); 
     } 
    } 
    } 

如果我有一個複雜的細胞,簡單地從render()返回一個安全的HTML字符串變成乏味。有沒有辦法爲此使用UiBinder,或者比手動構建HTML字符串更好?

回答

5

GWT 2.5將增加UiRenderer正是爲此目的:利用一個*.ui.xml模板建立一個渲染,與模板變量,呈示時,得到一個子元素的句柄能力等

等待GWT 2.5,您可以使用SafeHtmlTemplates,將您的模板分割成單獨的方法,然後合成它們以構建單元格的內容。