Как настроить средство визуализации элементов для ListView в ext-gwt?

У меня есть ListView в ext-gwt, и я добавляю в него некоторые пользовательские данные. Как я могу установить визуализатор элементов на ListView? На данный момент, всякий раз, когда добавляется элемент, есть только небольшая строка, представляющая каждую запись в представлении.

Вот мой основной код:

import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ListView;
import com.foo.bar.FooModelData;


private final ListStore<FooModelData> listStore = 
    new ListStore<FooModelData>();
private final ListView<FooModelData> listView = 
    new ListView<FooModelData>();

public initializeView()
{
    listView.setStore(listStore);
    listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
}

public void addItem(FooModelData data) {
    listStore.add(data);
}


public class FooModelData extends BaseModel
{
    public ModelDataInstance(Foo foo, String style)
    {
        setFoo(foo);
        setStyle(style);
    }

    public String getStyle()
    {
        return get("style");
    }

    public Foo getFoo()
    {
        return (Foo) get("foo");
    }

    public void setStyle(String style)
    {
        set("style", style);
    }

    public void setFoo(Foo foo)
    {
        set("foo", foo);
    }

}

Спасибо за помощь!


person Cuga    schedule 22.10.2010    source источник


Ответы (1)


GXT использует шаблонную реализацию. Используя упрощенную версию примера проводника Sencha, вы можете использовать свои данные следующим образом (foo.name предполагает, что foo также является моделью):

public initializeView()
{
listView.setStore(listStore);
listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
listView.setTemplate(getTemplate());
}

private native String getTemplate() /*-{ 
 return ['<tpl for=".">',
 '<div class="{style}">{foo.name}</div>', 
 '</tpl>', 
 '<div class="x-clear"></div>'].join(""); 
}-*/;
person Gerhard Davids    schedule 25.10.2010