是否可以将StyledCellLabelProvider.COLORS_ON_SELECTION与DecoratingStyledCellLabelProvider一起使用?

时间:2015-06-29 18:44:56

标签: eclipse-plugin eclipse-rcp tableviewer

我刚刚提到了如何使用StyledCellLabelProvider.COLORS_ON_SELECTION悬停或在JFace TableViewer上选择行时保持背景单元格的颜色。但是,我使用的是StyledCellLabelProvider的子类 - DecoratingStyledCellLabelProvider

我有什么方法可以使用StyledCellLabelProvider.COLORS_ON_SELECTION样式位吗?我没有看到任何带有样式位的构造函数,也没有设置样式的方法。

1 个答案:

答案 0 :(得分:0)

您无法设置标记,但您可以覆盖DecoratingStyledCellLabelProvider.paint方法来模拟它的作用:

@Override
protected void paint(final Event event, final Object element)
{
  if ((event.detail & SWT.SELECTED) != 0)
   {
     event.detail &= ~SWT.SELECTED;

     super.paint(event, element);

     event.detail |= SWT.SELECTED;
   }
  else
    super.paint(event, element);
}

这只是关闭了所选的'在涂料期间标记,因此该行被视为正常。

但我并不是真的推荐这个(或COLORS_ON_SELECTION),因为它在某些平台上效果不佳。