2012-05-22 51 views
2

我在GWT中使用CellTable小部件。如何將css類添加到CellTable控件(GWT)的第一列?

我想更改第一列中包含的每個文本的字體大小。方法addColumnStyleName不符合我的需要,因爲它將該類添加到colgroup標記;只有部分css在這個標籤上處理,我不能更改colgroup的字體屬性(它在文本上沒有發生)。

所以,我想在第一列的每個td上添加一個類,但是找不到一個簡單的方法來完成此操作。

喜歡的東西setRowStyles列的就可以了,但它不存在...

你有沒有這樣做這樣的事了一些暗示?

編輯:我使用GWT 2.3和2.4不(具有方法setCellStyleNames)

回答

2

這是因爲在Column實例調用setCellStyleNames一樣簡單。

+0

大聲笑,當你發佈你的答案時,我明確感到愚蠢的看不到它。我只是看到這種方法僅在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'。 –