GWT CellBrowser с CompositeCell - PullRequest
       34

GWT CellBrowser с CompositeCell

0 голосов
/ 03 марта 2012

Я пытаюсь создать CellBrowser, как указано ниже.

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

Проблема в том, что я не могу получить заголовки ( Математика и Наука ) как указано в приведенном выше коде.Заголовки относятся к разным объектам, и мой CompositeCell (CheckBox и TextCell), похоже, ожидает / применяет все элементы.

В основном я пытаюсь построить список в CellBrowser, причем некоторые из них имеют (CheckBoxTextCell), а некоторые из них имеют только (TextCell).

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 03 марта 2012

Вы должны переопределить метод рендеринга либо вашего 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);
    }
...