具有CompositeCell的GWT CellBrowser

时间:2012-03-02 23:04:36

标签: gwt uibinder composite-controls cellbrowser

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

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

问题是,我无法得到上面代码中给出的标题(数学 Science )。标题来自不同的Object,我的CompositeCell(CheckBox和TextCell)似乎期待/申请所有项目。

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

请告知。

1 个答案:

答案 0 :(得分: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),也可以将标记直接传递给单元格。

或者,您可以修改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);
    }