更改标签Docorator的字体样式
问题描述:
我试图给一些文件名添加后缀。我创建了一个标签装饰器,如下所示,它工作正常。但我也想让我的装饰大胆。我实施了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;
}
}
答
ILightweightLabelDecorator
不支持IFontDecorator
。
取而代之,您可以调用setFont
方法将IDecoration
参数传递给decorate
方法。
是否有任何其他标签装饰器只支持装饰部分的造型。 –
非轻量级的'ILabelDecorator'支持'IFontDecorator'。 –