TreeViewer实现eclipse中搜索结果树把节点某个部分的加个背景色彩怎么做?
TreeViewer实现eclipse中搜索结果显示类似的树把节点label的某个部分加点背景色彩怎么做?
在实现labelprovider时候扩展DecoratingStyledCellLabelProvider,并实现
ILabelProvider,在当中复写getText方法来实现
例如:
TestLabelProvider labelProvider = new TestLabelProvider();
treeViewer.setLabelProvider(new ReqDecoratingLabelProvider(labelProvider));
public class ReqDecoratingLabelProvider extends DecoratingStyledCellLabelProvider implements ILabelProvider {
private ILabelProvider provider;
public ReqDecoratingLabelProvider(TestLabelProvider provider) {
super(provider, PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), null);
this.provider = provider;
}
public String getText(Object element) {
return getStyledText(element).getString();
}
}
public class TestLabelProvider extends LabelProvider implements IStyledLabelProvider {
public StyledString getStyledText(Object element) {
String name = ((ITreeEntry)element).getName();
StyledString str= new StyledString(name, StyledString.QUALIFIER_STYLER);
str.append("需求", StyledString.COUNTER_STYLER);
return str
;
}
}
则是我用来测试的程序,没有怎么整理的,其中ITreeEntry是我定义的树的一个节点对象。
构造出来后节点后面的那个“需求“跟前面的字体颜色就会不同了。也算实现了某个部分加颜色的功能吧!虽然不是什么背景也没有,搜索结果树 那个关键字突出显示那么好看。。。