Workspace中发生的大部分变化会被通知给监听Resource变化的Listener,包括:文件、文件夹或工程所发生的创建、删除和修改。Listener还能够注册一些特殊的事件,比如:删除或关闭工程之前、以及workspace自动创建之后等。要注册一个监听resource变化的Listener,操作很简单:
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IResourceChangeListener rcl = new IResourceChangeListener() {
- public void resourceChanged(IResourceChangeEvent event) {
- }
- };
- workspace.addResourceChangeListener(rcl);
记得在不需要这些Listener之后,要删除它们:
- workspace.removeResourceChangeListener(rcl);
从IWorkspace.addResourceChangeListener的javadoc可以获得更多关于各种resource变化事件的信息,以及在使用它们时的限制。
需要注意的是,在编写监听resource变化的Listener时,保持程序的性能非常重要。每个使workspace发生变化的操作都会通知监听器,所以加裁的每个监听器都会造成性能的下降。当监听器需要执行耗费大量资源的处理时,可以考虑把其部分工作剥离出来,放到其它的线程中。
java 代码
java 代码