【问题标题】:How to remove a previously added decorator on a resource?如何删除资源上先前添加的装饰器?
【发布时间】:2012-04-03 17:28:08
【问题描述】:

这里有人知道如何删除资源上的特定装饰器吗?我将org.eclipse.ui.decorators 扩展到我的项目并创建了一个实现ILightweightLabelDecorator 的类。在装饰器类中,我在调用decorator.addOverlay() 之前测试了条目是否是项目和其他测试。我没有实现其他功能,例如removeListenerisLabelPropertydisposeaddListener,因为我目前没有看到使用。 任何关于如何进行的想法、资源和评论都会有很大帮助。

代码:装饰器函数

    QualifiedName decorator = new QualifiedName("decorator", "value");

    if (element instanceof IProject) {
        IProject res = (IProject) element;

        if (!res.isOpen()) {
            return;
        }

        String val = null;
        try {
            val = res.getPersistentProperty(decorator);

        } catch (CoreException e) {
            e.printStackTrace();
        }

        if (val != null && val.equals(DecoratorState.ACTIVE)) {

            decoration.addOverlay(ImageDescriptor.createFromFile(MyDecorator.class, 
                    "/icons/sample.gif"), IDecoration.BOTTOM_RIGHT);
            decoration.addSuffix(" [Using Enhancement]");

        }
    }

【问题讨论】:

    标签: java eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

    对于遇到相同问题的任何人,都可以使用LabelProviderChangedEvent 修复它

    【讨论】:

      猜你喜欢
      • 2019-08-13
      • 2011-03-25
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2023-01-19
      相关资源
      最近更新 更多