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

CompositeCellまたはのいずれかの render メソッドをオーバーライドする必要があります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 の render メソッドを変更することもできます。

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 に答える