如何在Eclipse中获取与propertyChanged事件关联的IResource?

时间:2011-02-28 18:07:40

标签: eclipse resources eclipse-plugin eclipse-rcp

我正在开发一个监视工作区中事件的Eclipse插件。我的一个类实现了IPropertyListener,这意味着它继承了propertyChanged方法。当插件工作空间中的文件变脏时,会触发此方法。我需要知道什么IResource与propertyChanged事件相关联,但我当前的实现不起作用。

public void propertyChanged(Object source, int propId)
{
    if(propId == IEditorPart.PROP_DIRTY)
    {
        IResource resource = (IResource)source;
    }
}

我认为这不起作用,因为source不是IResource类型,但我不知道如何获得与此属性更改相关联的资源。

关于如何获得IResource的任何想法?

1 个答案:

答案 0 :(得分:4)

尝试将源代码转换为IEditorPart。然后调用getEditorInput()。并非所有编辑器输入都是工作空间资源,因此请检查其中一个子类型(可能是FileEditorInput)并从那里开始。

或者,只需通过IWorkspace.addResourceChangeListener()自己监听资源更改,而不是依赖第三方。