是否可以使jFace TreeViewer特定节点支持其LabelProvider的粗体字体?

时间:2014-03-27 06:02:08

标签: eclipse-rcp jface eclipse-plugin

我正在开发一个基于TreeViewer的树并创建myLabelProvider extends LabelProvider然后使用viewer.setLabelProvider(new ViewLabelProvider());,但所有节点仍然以正常的普通样式显示。

代码:

class ViewLabelProvider extends LabelProvider implements ITableLabelProvider, ITableFontProvider{

    public String getText(Object obj) {
        return obj.toString();
    }

    public Image getImage(Object obj) {
        return null;
    }

    public Font getFont(Object element, int columnIndex) {
        FontRegistry registry = new FontRegistry();
        return registry.getBold(Display.getCurrent().getSystemFont().getFontData()[0].getName());
    }

    public Image getColumnImage(Object element, int columnIndex) {
        return null;
    }

    public String getColumnText(Object element, int columnIndex) {
        return null;
    }
}

参考文献:

http://www.eclipsezone.com/eclipse/forums/t95078.html
How do I make part of a TreeViewer cell bold?

有人可以提供一些建议吗?

2 个答案:

答案 0 :(得分:1)

如果您只是使用一个列,那么请让您的标签提供程序实现IFontProvider(也许IColorProvider

public Font getFont(Object element) {
   return font or null to use default
}

注意:如果您创建任何字体,请务必在完成后将其丢弃。

答案 1 :(得分:0)

也许

public String getColumnText(Object element, int columnIndex)
{
 if (columnIndex == 0)
  return getText(element);
 return null;
}