Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除资源上先前添加的装饰器?_Java_Eclipse_Eclipse Plugin_Eclipse Rcp - Fatal编程技术网

Java 如何删除资源上先前添加的装饰器?

Java 如何删除资源上先前添加的装饰器?,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,这里有人知道如何删除资源上的特定装饰器吗?我将org.eclipse.ui.decorators扩展到我的项目中,并创建了一个实现ILightweightLabelDecorator的类。在decorator类中,我在调用decorator.addOverlay()之前测试了条目是否是项目和其他测试。我没有实现其他功能,如removeListener,isLabelProperty,dispose,addListener,因为我目前看不到它的用途。 任何关于如何进行的想法、资源和评论都将大有裨益

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

代码:decorator函数

    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]");

        }
    }

对于存在相同问题的任何人,都可以使用
LabelProviderChangedEvent

修复。对于存在相同问题的任何人,都可以使用
LabelProviderChangedEvent