我创建了一个RCP应用程序,它通过扩展 CommonNavigator 来检测自己视图中的资源更改。
public abstract class NavigatorView extends CommonNavigator implements
IResourceChangeListener {
public void createPartControl(Composite parent) {
super.createPartControl(parent);
hookResourceChangeCommand(); // my resource tracking function.
}
}
但是现在我需要为此创建一个插件,它可以在eclipse中检测项目资源管理器中的资源更改。我现在无法创建视图,我需要检测已存在的视图。我该怎么办?
答案 0 :(得分:1)
请完全删除您创建的视图。如果要跟踪资源更改,则不应在UI中执行任何操作,因为资源是工作空间概念的一部分,并且工作空间通常是无头的(即没有UI)。
而是使用下面的代码(取自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);