我有一个 Eclipse 插件,目前可以使用它在工作区中获取选定的项目
IStructuredSelection structured = (IStructuredSelection) iServiceServiceObject.getSelection("org.eclipse.jdt.ui.PackageExplorer");
Object[] selectedProjectObjects = structured.toArray();
for (Object projectObj : selectedProjectObjects) {
IAdapterManager adapterManager = Platform.getAdapterManager();
IResource resource = (IResource) adapterManager.getAdapter(projectObj, IResource.class);
if (resource instanceof IProject) {
IProject project = (IProject) resource;
// using the project in some way
我想添加还能够选择整个工作集并处理其中的所有项目的功能。有没有办法说
if(resource instanceof WorkingSetClass){
WorkingSetClass wsc = (WorkingSetClass)
IProject[] projects = wsc.getProjects()
问题是,文档说“所有已知的子接口(IResource):IContainer、IFile、IFolder、IProject、IWorkspaceRoot”。我尝试使用 IContainer 及其 members() 方法而不是伪 codish WorkingSetClass 和 getProjects(),但 instanceof 返回 false。
长话短说,我如何在包管理器的选定工作集中获取项目?