我正在尝试为某些文件名附加后缀。我创建了一个标签装饰器,如下所示,它正常工作。但我也想让我的装饰大胆。我实现了 IFontDecorator 但它的decoratFont()
没有被调用。任何人都可以指导我如何使我的装饰显得大胆。
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;
}
}
答案 0 :(得分:1)
ILightweightLabelDecorator
不支持IFontDecorator
。
相反,您调用传递给setFont
方法的IDecoration
参数的decorate
方法。