2013-01-04 40 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. 
} 
} 

但现在我需要为此创建一个插件,它检测eclipse中项目资源管理器中的资源变化。我现在无法创建视图,我需要检测已存在的视图。我应该怎么做?

回答

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); 
+0

感谢您的响应。其实这也是我经历的同样的参考。早些时候,我正在用视图代码写这个监听器。现在,既然不会有任何意见,我只有激活班。你能告诉我该把这个听众放在哪里吗? –

+0

你可以把它放在你的插件的激活器中(然后改变插件的开始级别,以便始终启动它)。 – Bananeweizen