0

我正在尝试构建一个 CellBrowser,如下所示。

Week 1 -> Mathematics
Week 2    [] Algebra
Week 3    [] Trigonometry
          Science
          [] Physics
          [] Chemistry         

问题是,我无法获得上述代码中给出的标题(数学科学)。标题来自不同的对象,我的 CompositeCell(CheckBox 和 TextCell)似乎期待/适用于所有项目。

基本上,我正在尝试在 CellBrowser 中构建列表,其中一些具有(CheckBox 和 TextCell),而其中一些只有(TextCell)。

请指教。

4

1 回答 1

0

您必须覆盖您的CompositeCellCheckBoxCell. 像这样的东西:

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) 中的标志,也可以将标志直接传递给 Cell。

或者,您可以修改 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);
    }
于 2012-03-03T18:54:11.650 回答