在做eclipse插件开发中,特别是自动生成代码或者uml->代码的插件中,有时需要刷新一下文件夹或者重新编译一下.那如何实现这两个操作呢。
一、实现刷新
1、一个关键的接口是org.eclipse.core.resources.IResource
调用这个接口的refreshLocal方法即可。例如refreshLocal(IResource.DEPTH_INFINITE, null)
2、到底有哪些类实现了这个接口呢?
来看一下继承结构
首先继承自IResource的接口有IContainer、IFolder、IProject、IWorkspaceRoot、IFile一共5个
加上IResource 6个,凡是实现这些接口的都可以。
3、接口的继承结构
接口 extends
IResource 无
IContainer IResource
IFile IResource
IFolder IContainer
IProject IContainer
IWorkspaceRoot IContainer
4、类的继承结构
类 extends implements
Resource 无 IResource
Container Resource IContainer
File Resource IFile
Folder Container IFolder
Project Container IProject
WorkspaceRoot Container IWorkspaceRoot
二、实现重编译(也就是clean)
clean all:
ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.CLEAN_BUILD,
monitor);
clean one project
((IProject) selection[i]).build(IncrementalProjectBuilder.CLEAN_BUILD, new
SubProgressMonitor(monitor, 1));