Is it possible to make jFace TreeViewer specific node support bold font for its LabelProvider?

穿精又带淫゛_ 提交于 2019-12-08 09:41:54

问题


I'm developing a tree based on TreeViewer and created myLabelProvider which extends LabelProvider and then use viewer.setLabelProvider(new ViewLabelProvider());, but all the nodes are still displayed with normal plain style.

Code:

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;
    }
}

References:

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

Can anyone give some advice?


回答1:


If you are just using a single column then make your label provider implement IFontProvider (and perhaps IColorProvider)

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

Note: If you create any fonts be sure to dispose of them when your are done.




回答2:


Maybe

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


来源:https://stackoverflow.com/questions/22679468/is-it-possible-to-make-jface-treeviewer-specific-node-support-bold-font-for-its

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!