2012-05-22 3 views
2

Я использую виджет CellTable в GWT.Как добавить класс css в первый столбец виджета CellTable (GWT)?

Я хочу изменить размер шрифта для каждого текста, содержащегося в первом столбце. Метод addColumnStyleName не подходит мне, потому что он добавляет класс в тег colgroup; на этот тег обрабатывается только частичный css, и я не могу изменить атрибуты шрифта colgroup (у него нет информации о тексте).

Итак, я хочу добавить класс на каждый td первого столбца, но не могу найти простой способ сделать это.

Что-то вроде setRowStyles для колонн было бы хорошо, но он не существует ...

У вас есть какой-то намек на делать такую ​​вещь?

EDIT: Я использовать GWT 2.3, а не 2.4 (который имеет метод setCellStyleNames)

ответ

2

Это так же просто, как вызов setCellStyleNames на экземпляре Column.

+0

lol, когда вы отправляете свой ответ, я окончательно почувствовал себя глупо, чтобы не видеть его. И я просто вижу, что этот метод только в 2.4. Я использую 2.3 ... Так что не так глупо;) –

+2

За исключением того, что вы обязательно должны обновиться до последней версии GWT, когда выберетесь ;-) –

+0

Я не могу использовать 2.4 на данный момент (большое приложение, правила без регрессии, строгие стандарты ...). Но я проверяю ваш ответ, потому что это лучше всего при использовании 2.4;) –

0

Я наконец-то понял. Но я не очень доволен этим решением. Это довольно сложная задача для такой простой задачи. Я открываю любое другое предложение.

Как я добиться этого, чтобы создать новую ячейку и новый столбец:

private class KeyColumn extends Column<SimpleLegendItem, String> { 

    public KeyColumn() { 
     super(new KeyCell()); 
    } 

    @Override 
    public String getValue(SimpleLegendItem item) { 
     return item.getKey(); 
    }  
} 

private class KeyCell extends AbstractCell<String> { 

    @Override 
    public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) { 
     sb.appendHtmlConstant("<span class=\"" + tableResources.cellTableStyle().box() + "\">"); 
     sb.appendEscaped(value); 
     sb.appendHtmlConstant("</span>"); 
    }  
} 

Чтобы упростить пример, я намеренно не использовать шаблон.

+0

Я собирался предложить это решение или подождать 2.5 и использовать «CellTableBuilder», а затем (смотря на код «DefaultCellTableBuilder»), я нашел ' setCellStyleNames'. –