0

我创建了一个 RCP 应用程序,它通过扩展CommonNavigator在自己的视图中检测资源更改。

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

但是现在我需要为此创建一个插件,它可以检测 Eclipse 本身中项目资源管理器中的资源更改。我现在无法创建视图,我需要检测已经存在的视图。我应该怎么做?

4

1 回答 1

1

请完全删除您创建的视图。如果要跟踪资源更改,则不应在 UI 中执行任何操作,因为资源是工作区概念的一部分,并且工作区通常是无头的(即没有 UI)。

而是使用下面的代码(取自资源更改侦听器教程):

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);
于 2013-01-05T10:01:07.830 回答