基于选择状态的GWT单元渲染

时间:2013-12-04 09:37:58

标签: gwt

我在CellTree中有一个自定义图像单元格。我想根据行/节点选择状态渲染两个不同的图像,例如,如果选择了行/节点,我想渲染图像A,如果没有选择图像B.图像耦合对于每个节点是不同的。

在单元格的render方法中获取选择状态的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

CSS解决方案

如果您可以在此处使用背景图片,那么最简单,最有效的解决方案就是基于CSS。

查看/com/google/gwt/user/cellview/client/CellTree.css(在gwt-user.jar中)。在那里你可以看到css类“.cellTreeItem”和“.cellTreeSelectedItem”。后者已经有了一个图像。您可以为自己分配它,为“.cellTreeItem”分配另一个。

有关如何调整CellTable / CellTree / ...样式的一般信息,请参阅例如: https://stackoverflow.com/a/6387210/291741

细胞溶液

您可以使用SelectionModel构建您的单元格,如

public MyCell(SelectionModel selectionModel) {
  this.selectionModel = selectionModel;
}

public void render(final Cell.Context context, final Node value,
    final SafeHtmlBuilder sb) {

  if (selectionModel.isSelected(...
}

但是,当选择更改时,您可能需要重新触发单元格渲染。这可能是可能的,但我从来没有这样做过。