如何在SWT TableViewer中装饰列图像和文本?

时间:2015-06-23 16:24:16

标签: java swt jface tableviewer

我有一个用JFace TableViewer包装的SWT表。

我的要求是:

  1. 使用工作台装饰器管理器
  2. 中定义的装饰器装饰列图像
  3. 用不同颜色装饰列的文本
  4. 我通过扩展DecoratingLabelProvider并实施ITableLabelProvider来获得#1。我把原来的TableLabelProvider和工作台装饰经理传给了我,我得到了装饰员的图标。

    然后我开始研究#2。我在这里问了这个问题,并被告知IStyleLabelProvider(我试图用于彩色文本的内容)与ITableLabelProvider不兼容。所以我转而使用实现ColumnLabelProvider的{​​{1}}。

    然而,现在我被卡住了。这两个要求似乎是相互排斥的。我无法延伸IStyledLabelProviderColumnLabelProvider。当我试图简单地将工作台装饰器管理器传递给DecoratingLabelProvider时,但它根本没有装饰图像。我错误地传递了它,还是只能在ColumnLabelProvider中使用?我还能尝试什么?

    DecoratingLabelProvider

1 个答案:

答案 0 :(得分:2)

您可以DecoratingStyledCellLabelProvider使用IStyledLabelProviderILabelDecorator作为参数:

new DecoratingStyledCellLabelProvider(styledLabelProvider,
                    PlatformUI.getWorkbench().getDecoratorManager()
                            .getLabelDecorator(), null);