我正在开发一个 Eclipse 插件,用于监视工作区中的事件。我的一个类实现了 IPropertyListener,这意味着它继承了 propertyChanged 方法。当插件工作区中的文件变脏时,会触发此方法。我需要知道什么 IResource 与 propertyChanged 事件关联,但我当前的实现不起作用。
public void propertyChanged(Object source, int propId)
{
if(propId == IEditorPart.PROP_DIRTY)
{
IResource resource = (IResource)source;
}
}
我认为这不起作用,因为源不是 IResource 类型,但我不知道如何获取与此属性更改关联的资源。
关于如何获取 IResource 有什么想法吗?
最佳答案
尝试将源转换为 IEditorPart。然后调用 getEditorInput()。并非所有编辑器输入都是工作区资源,因此请检查子类型之一(可能是 FileEditorInput)并从那里开始。
或者,只需通过 IWorkspace.addResourceChangeListener() 自己监听资源更改,而不是依赖第三方。
关于eclipse - 如何获取与 Eclipse 中的 propertyChanged 事件关联的 IResource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145776/