2012-06-26 15 views
0

我想根據CellTable(或DataGrid)中「row」值的值確定是否使用圖標。我如何確定在構建Cell渲染器時?GWT確定單元格渲染過程中的行值

IconCellDecorator<String> icd = new IconCellDecorator<String>(res.search(), new ClickableTextCell()) { 
    @Override 
    protected boolean isIconUsed(String value) { 
    //value may not be unique across rows (column value), I really need the row instance here. 
    } 
}; 
+0

在我看來,我真的希望裝飾者採取我的行類型,但然後ClickableTextCell將不知道如何獲得它所需的字符串值。看來我必須編寫一個自定義的IconCellDecorator,但認爲可能有一個更乾淨的解決方案。 – Joel

+0

剛剛意識到render()有一個給出索引和鍵的上下文......思考這可能會有所幫助。 – Joel

回答

1

如果需要對象,你必須使用一個IconCellDecorator<RowObject>和包裹或子類ClickableTextCell提取StringRowObject的。

或者您可以使用CompositeCellImageResourceCell而不是IconCellDecorator

+0

ClickableTextCell的包裝/子類看起來很尷尬。這並不是真正意義上的處理非文字。我會看看CompositeCell是否有意義。 (我實際上做了我自己的IconDecorator,當圖標沒有被使用時,它沒有顯示空白區域,因此可能需要重構) – Joel

0

我決定重寫IconCellDecorator,以便getImageUsed方法在Context對象中傳遞,它給了我行索引和鍵。儘管托馬斯的回答也應該起作用,但這似乎是我嘗試完成的最直接的方法。