2016-09-26 77 views
0

我試圖給一些文件名添加後綴。我創建了一個標籤裝飾器,如下所示,它工作正常。但我也想讓我的裝飾大膽。我實施了IFontDecorator但它的decoratFont()沒有被調用。任何人都可以指導我如何讓我的裝飾顯得大膽。更改標籤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

ILightweightLabelDecorator不支持IFontDecorator

取而代之,您可以調用setFont方法將IDecoration參數傳遞給decorate方法。

+0

是否有任何其他標籤裝飾器只支持裝飾部分的造型。 –

+1

非輕量級的'ILabelDecorator'支持'IFontDecorator'。 –