java - 在 JFace 树查看器中为一些特定的树着色

标签 java swt jface

我必须在视觉上区分 JFace 树中的某些节点及其子节点。由于限制,我只能扩展标签提供程序。

如何为节点及其子节点着色?我愿意接受其他使节点脱颖而出的方法。

class ExistingScheduleLabelProvider extends LabelProvider {
    @Override
    public String getText(Object element) {
        if (element instanceof Schedule) {
            Schedule schedule = (Schedule) element;
            return schedule.getDescription();
        } else if (element instanceof BatchReport) {
            BatchReport report = (BatchReport) element;
            Schedule schedule = (Schedule)report.eContainer();
            return (schedule.getBatchReports().indexOf(report)+1) + " - " + report.getDescription(); //$NON-NLS-1$
        }
        return null;
    }
    @Override
    public Image getImage(Object element) {
        if (element instanceof Schedule)
            return SchedulingUIPlugin.getImage(SchedulingImageConstants.IMG_SCHEDULE);
        else if (element instanceof BatchReport)
            return SchedulingUIPlugin.getImage(SchedulingImageConstants.IMG_BATCH_REPORT);
        return super.getImage(element);
    }   

}

从树中的可用节点中,我可以根据条件仅对我想要的节点进行着色,以便将它们与其他节点区分开来吗?

最佳答案

如果您的标签提供程序实现org.eclipse.jface.viewers.IColorProvider,那么它将被要求提供各种元素的颜色。

关于java - 在 JFace 树查看器中为一些特定的树着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661429/

相关文章:

java - 对于带有第二个 boolean 参数的每个循环

java - 带有改变大小的数组列表的双 for 循环

eclipse - Jface ViewerFilter 过滤全树深度

java - 如何在 SWT 中禁用子代、孙代...控制?

java - 如何让GridLayout行填充可用空间?

java - Eclipse 插件,在选项卡标题旁边的轮廓上添加按钮

java - Eclipse RCP 颜色选择器

java - 谐波序列递归

java - 使用 java Spark DataFrame 通过 jdbc 访问 Oracle

java - 带有多行的 jface swt InputDialog