2013-01-04 2 views
0

Я создал приложение RCP, которое обнаруживает изменение ресурса в своем собственном виде, расширяя CommonNavigator.Плагин изменения ресурсов для eclipse

public abstract class NavigatorView extends CommonNavigator implements 
    IResourceChangeListener { 
public void createPartControl(Composite parent) { 
super.createPartControl(parent); 
hookResourceChangeCommand(); // my resource tracking function. 
} 
} 

Но теперь мне нужно создать плагин для этого, который определяет изменение ресурсов в Project Explorer в самом затмении. Я не могу создать представление сейчас, и мне нужно обнаружить уже существующее представление. Как я должен это делать ?

ответ

1

Пожалуйста, полностью удалите созданный вами вид. Вы не должны ничего делать в пользовательском интерфейсе, если хотите отслеживать изменения ресурсов, поскольку ресурсы являются частью концепции рабочей области, а рабочая область, как правило, безголовна (без пользовательского интерфейса).

Вместо этого используйте этот код (взятый из resource change listener tutorial):

IWorkspace workspace = ResourcesPlugin.getWorkspace(); 
    IResourceChangeListener listener = new IResourceChangeListener() { 
     public void resourceChanged(IResourceChangeEvent event) { 
     System.out.println("Something changed!"); 
     } 
    }; 
    workspace.addResourceChangeListener(listener); 

    //... some time later one ... 
    workspace.removeResourceChangeListener(listener); 
+0

Спасибо за ответ. На самом деле это та же самая ссылка, которую я тоже пережил. Раньше я писал этого слушателя в коде просмотра. Теперь, поскольку не будет никаких просмотров, у меня есть класс активатора. Не могли бы вы рассказать мне, где я должен поставить этого слушателя? –

+0

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

Смежные вопросы