Я бы сделал это, расширив TextInputCell и переопределив метод рендеринга для рендеринга чего-то другого, если вы не хотите, чтобы значение в этой конкретной строке редактировалось.
Примерно так:
public class MyTextInputCell extends TextInputCell {
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
YourObject object = getYourObject();
if ( object.isThisCellEditable() ) {
super.render(context,value,sb);
} else {
sb.appendEscaped(value); // our some other HTML. Whatever you want.
}
}
}
В методе рендеринга у вас есть доступ к контексту ячейки.Context.getIndex () возвращает абсолютный индекс объекта.Я не могу вспомнить начало моей работы, но если вы не предоставите реализацию ProvidesKey при создании CellTable, вы получите такую, которая будет использовать сам объект в качестве ключа.Таким образом, вы можете получить объект, используя Context.getKey ().