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

StackOverflow https://stackoverflow.com/questions/22679468

문제

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?

도움이 되었습니까?

해결책

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.

다른 팁

Maybe

public String getColumnText(Object element, int columnIndex)
{
 if (columnIndex == 0)
  return getText(element);
 return null;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top