Как я могу получить IResource, связанный с событием propertyChanged в Eclipse? - PullRequest
2 голосов
/ 28 февраля 2011

Я разрабатываю плагин Eclipse, который отслеживает события в рабочей области. Один из моих классов реализует IPropertyListener, что означает, что он наследует метод propertyChanged. Этот метод запускается, когда файл в рабочей области плагина загрязняется. Мне нужно знать, какой IResource связан с событием propertyChanged, но моя текущая реализация не работает.

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

Я думаю, что это не работает, потому что источник не относится к типу IResource, но я не знаю, как еще получить ресурс, связанный с этим изменением свойства.

Любые идеи о том, как я мог бы получить в IResource?

1 Ответ

4 голосов
/ 28 февраля 2011

Попробуйте привести источник к IEditorPart.Затем вызовите getEditorInput ().Не все входы редактора являются ресурсами рабочей области, поэтому проверьте один из подтипов (возможно, FileEditorInput) и перейдите оттуда.

В качестве альтернативы, просто слушайте изменения ресурса самостоятельно через IWorkspace.addResourceChangeListener () вместо того, чтобы полагаться натретья сторона.

...