eclipse treeviewer 过滤

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是我定义的树的一个节点对象。
构造出来后节点后面的那个“需求“跟前面的字体颜色就会不同了。也算实现了某个部分加颜色的功能吧!虽然不是什么背景也没有,搜索结果树 那个关键字突出显示那么好看。。。 

你可能感兴趣的:(eclipse)