Как установить средство визуализации элементов для ListView в ext-gwt? - PullRequest
1 голос
/ 22 октября 2010

У меня есть 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);
    }

}

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

1 Ответ

2 голосов
/ 25 октября 2010

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(""); 
}-*/;
...