2014-03-27 1 views
0

TreeViewer를 기반으로 트리를 개발 중이며인 myLabelProvider를 만든 다음 viewer.setLabelProvider(new ViewLabelProvider());을 사용하지만 모든 노드가 여전히 일반 일반 스타일로 표시됩니다.jFace TreeViewer의 특정 노드 지원을 LabelProvider에 대해 굵은 글꼴로 만들 수 있습니까?

코드 :

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?

사람이 몇 가지 조언을 줄 수 있습니까?

+0

여러 개의 열 또는 단일 열을 사용하고 있습니까? –

+0

@ greg-449 열이 없습니다. 그것은 단지'Package Explorer'와 같은 계층 트리입니다. –

답변

1

그냥 다음 레이블 공급자가 IFontProvider (그리고 아마도 IColorProvider)

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

주를 구현할 수 있도록 하나의 열을 사용하는 경우 : 당신이 어떤 글꼴을 폐기해야 작성하는 경우 너의 일이 끝나면 그들 중.

0

어쩌면

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

3 개의 메소드'getFont'' getColumnImage'' getColumnText'가 내 labelProvider에서 절대 호출되지 않습니다 –

+0

TreeViewer에 컬럼이 있습니까? tree가 몇 개의 컬럼을 가지는 TreeViewer (Tree tree) 생성자에 의해 생성 된 것인가? 아니요, 아마도 IFontProvider가 필요합니다. – Severin

+0

내 트리에 열이 없습니다. 이것은 단지'Package Explorer' 트리와 같은 계층 트리입니다. –