2014-12-29 6 views
0

У меня возникли проблемы с выяснением, почему мой метод визуализации не вызывается. Вот моя пользовательская ячейка, которая расширяет AbstractCell, разбивается на ее простейшую форму.GWT Custom Cell в CellList - render() не называется

public class FormHistoryCell<T> extends AbstractCell<T> { 

@Override 
public void render(com.google.gwt.cell.client.Cell.Context context, T value, SafeHtmlBuilder sb) { 

    System.out.println("Rendering customer cell..."); 

    if (value == null) { 
     return; 
    } 
} 

}

Вот snipet в моем коде, который создает экземпляр «FormHistoryCell» и пытается добавить его в CellList.

@UiFactory 
CellList<FormHistoryCell> initList() { 
    FormHistoryCell formHistoryCell = new FormHistoryCell(); 
    CellList historyList = new CellList<FormHistoryCell>(formHistoryCell); 

    return historyList; 
} 

Я пробовал разные вещи, как добавить конструктор, который принимает строку в качестве аргумента, и т.д. конструктор вызывается, но делают метод не является. Рассматривая этот абстрактный класс, он кажется, что метод render вызывается в методе «setValue», но не видел, где это вызвано в других пользовательских расширениях ячеек, методы визуализации которых, как представляется, получаются вызываемыми просто отлично. Я уверен, что я пропустил что-то очевидное здесь, но не могу понять, что. Пожалуйста помоги.

+2

Я думаю, вам нужно установить некоторые данные в CellList, чтобы визуализировать вызов – outellou

ответ

1

На основании кода, который вы указали, нет причин для того, чтобы браузер вызывал метод render вашей ячейки. Вы просто передали ссылку на объект FormHistoryCell на ваш CellList. Метод render необходим только тогда, когда браузер должен отображать ячейку и ее содержимое. Это происходит, когда вы добавляете данные в свой CellList, как предлагал @outellou.