在我的tableviewer中,用户可以选中/取消选中项目。我想禁用与特定对象选择无关的行,以便用户无法修改这些行。这看起来非常基本,但我在做同样的事情上遇到了很多困难。请帮忙!
答案 0 :(得分:1)
Table / TableViewer不支持禁用行。
您可以在选择更改的侦听器中清除不需要的选择(或检查状态更改侦听器)。
如果您的标签提供者实施IColorProvder
,您可以更改已禁用行的前景/背景颜色。
答案 1 :(得分:0)
可能未禁用行,但如果您不希望用户修改可以使用JFace中的EditingSupport
实现的行的值。
EditingSupport类中的canEdit()
方法确定是否可以编辑单元格。
例如,
class MyEditingSupport extends EditingSupport {
...
@Override
protected boolean canEdit(Object element) {
return condition_to_determine_if_the_row_should_be_disabled;
}
...
}
Here是关于在表格中使用EditingSupport的好文章。