如何更改已禁用的Tree-Viewer的节点背景颜色

时间:2013-10-23 12:07:07

标签: java eclipse swt eclipse-rcp jface

我在SWT中有一个Tree-Viewer。我在其中选择一个节点/行,然后我将该行的背景颜色更改为绿色。

现在我正在禁用树查看器,但现在已禁用孔树查看器,并且背景颜色也已消失。

我知道这是因为我禁用了观众。但是,在禁用查看器后,是否有任何方法可以使所选行的背景颜色与我们设置的相同。

1 个答案:

答案 0 :(得分:0)

考虑使用StyledCellLabelProvider,您可以成功扩展它以提供标签的样式,如下所示:(另请参阅TextStyle类以获取更多格式选项)。

public class MyStyledLabelProvider extends StyledCellLabelProvider {

private Styler defaultStyler;
public MyStyledLabelProvider () {
        defaultStyler = new Styler() {
            @Override
            public void applyStyles(TextStyle textStyle) {
                textStyle.strikeout = true;
            }
        };
    }

@Override
    public void update(ViewerCell cell) {
        Object element = cell.getElement();
        StyledString styledString = getStyledString(element);
        cell.setText(styledString.toString());
        cell.setStyleRanges(styledString.getStyleRanges());
        super.update(cell);
    }

    @SuppressWarnings("unchecked")
    private StyledString getStyledString(Object element) {
        return new StyledString("Cell string", defaultStyler);
    }
}