我正在尝试构建一个CellBrowser,如下所示。
Week 1 -> Mathematics
Week 2 [] Algebra
Week 3 [] Trigonometry
Science
[] Physics
[] Chemistry
问题是,我无法得到上面代码中给出的标题(数学和 Science )。标题来自不同的Object,我的CompositeCell(CheckBox和TextCell)似乎期待/申请所有项目。
基本上,我正在尝试在CellBrowser中构建列表,其中一些具有(CheckBox和TextCell),而其中一些只有(TextCell)。
请告知。
答案 0 :(得分:0)
您必须覆盖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);
}