2012-06-26 31 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对象中传递,它给了我行索引和键。尽管托马斯的回答也应该起作用,但这似乎是我尝试完成的最直接的方法。