在Eclipse开发中,涉及到Resource的时候,经常会需要根据某些操作获取当对应的Project,或者是File。这里总结一下几种常见的方法。
首先看看Eclipse resource的结构:
因此我们只需要获取IResource,就可以轻松地获取到对应的Project了。
public IProject getProject();
下面总结一下获取Project的办法:
1,从选中的编辑器获取(一般的是文件编辑器)
IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IEditorInput editorInput = activeEditor.getEditorInput();
if(editorInput instanceof FileEditorInput){
FileEditorInput input = (FileEditorInput) editorInput;
IFile iFile = input.getFile();
IProject iProject = iFile.getProject();
}
2,从Project View Selection中获取
ISelection selection = XXX;//
IStructuredSelection sselection = (IStructuredSelection) selection;
Object firstElement = sselection.getFirstElement();
if(firstElement instanceof IResource){
IResource resource = (IResource) firstElement;
IProject project = resource.getProject();
}
3,从IPath获取
IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
IProject project = resource.getProject();
其他的就依次类推了,其实只要熟悉了eclipse resource plugin的基本的API之后,这些都是相通的。
PS:Java Project的跟IProject类似。