2016-09-26 2 views
0

일부 파일 이름에 접미사를 추가하려고합니다. 아래 주어진대로 레이블 데코레이터를 만들고 올바르게 작동합니다. 하지만 내 장식도 으로 굵게으로 만들고 싶습니다. IFontDecorator을 구현했지만 decoratFont()이 호출되지 않습니다. 누군가가 내 장식을 어떻게 대담하게 보이게해야하는지 안내 해줄 수 있습니까?Label Docorator의 글꼴 스타일 변경

public class ConfigFileDecorator extends LabelProvider implements ILightweightLabelDecorator, IFontDecorator { 
    private Font boldFont; 

    public void decorate(Object element, IDecoration decoration) { 
     try { 
      String platform = getPlatformName(element); 
      if (platform == null) { 
       return; 
      } 

      decoration.addSuffix(" [" + platform + "]"); 
     } 
     catch (Exception e) { 
      Activator.log(e); 
     } 
    } 

    @Override 
    public Font decorateFont(Object element) { 
     try { 
      String platform = getPlatformName(element); 
      if (platform == null) { 
       return null; 
      } 

      if (boldFont != null) { 
       return boldFont; 
      } 

      Font defaultFont = JFaceResources.getDefaultFont(); 
      FontData[] fontData = defaultFont.getFontData(); 
      for (int i = 0; i < fontData.length; i++) { 
       fontData[i].setStyle(SWT.BOLD); 
      }    
      boldFont = new Font(PlatformUI.getWorkbench().getDisplay(), fontData); 
      return boldFont; 
     } 
     catch (Exception e) { 
      Activator.log(e); 
     } 
     return null; 
    } 
} 

답변

1

ILightweightLabelDecoratorIFontDecorator을 지원하지 않습니다.

대신 메서드에 전달 된 IDecoration 매개 변수의 setFont 메서드를 호출합니다.

+0

데코레이션 부분 만 스타일링을 지원하는 다른 레이블 데코레이터가 있습니까? –

+1

경량이 아닌 ILabelDecorator는 IFontDecorator를 지원합니다. –