GWT CellBrowser с CompositeCell
Я пытаюсь построить CellBrowser, как указано ниже.
Week 1 -> Mathematics
Week 2 [] Algebra
Week 3 [] Trigonometry
Science
[] Physics
[] Chemistry
Проблема в том, что я не могу получить заголовки (математика и естественные науки), как указано в приведенном выше коде. Заголовок из другого объекта, и мой CompositeCell (CheckBox и TextCell), кажется, ожидает / применяет для всех элементов.
По сути, я пытаюсь построить список в CellBrowser, некоторые из которых имеют (CheckBox и TextCell), в то время как некоторые из них имеют только (TextCell).
Пожалуйста, порекомендуйте.
1 ответ
Вы должны переопределить метод рендеринга любого из ваших CompositeCell
или CheckBoxCell
, Что-то вроде этого:
public class MyCompositeCell extends CompositeCell<Course>
{
@Override
protected <X> void render(Context ctx,Course value,
SafeHtmlBuilder sb, HasCell<Course, X> hasCell) {
if (hasCell.getCell() instanceof CheckBoxCell && !value.hasCheckBox())
return;
super.render(ctx,value, sb, hasCell);
}
Функция hasCheckBox()
это просто пример. Либо вы получаете доступ к флажку в вашем DTO (Course
) или вы можете передать флаг непосредственно в ячейку.
В качестве альтернативы вы можете изменить метод рендеринга вашего CheckBoxCell:
public class MyCheckBoxCell extends CheckBoxCell<Course> {
@Override
public void render(Context ctx,Transformation value, SafeHtmlBuilder sb) {
if (!value.hasCheckBox())
return;
super.render(ctx,value, sb);
}