我在上下文菜单中添加了一个按钮,仅在您在“项目资源管理器”窗口中单击鼠标右键时才执行。我希望能够在“项目资源管理器”窗口中获取每个项目,并获取ProjectName和ProjectLocation并将其单独放入对象中并返回新的对象数组。
我找不到一种访问所需信息的方法。
plugin.xml
<extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu"> <command commandId="helloworld.sample" label="Hello World" style="push"> </command> </menuContribution> </extension> <extension point="org.eclipse.ui.commands"> <command defaultHandler="helloworld.handler.samplehandler" id="helloworld.sample" name="Sample"> </command> </extension>
samplehandler.java
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IWorkbenchPart viewpart = page.findView("org.eclipse.ui.navigator.ProjectExplorer"); Tree tree = (Tree) ((TreeViewer) viewpart.getSite().getSelectionProvider()).getControl(); TreeItem[] selTree = tree.getSelection();
我觉得好像树或selTree会拥有我想要的信息,但找不到。有什么帮助吗?
使用来自选择提供程序的选择数据:
IStructuredSelection sel = (IStructuredSelection)viewpart.getSite().getSelectionProvider().getSelection(); Object selObj = sel.getFirstElement(); IProject project = (IProject)Platform.getAdapterManager().getAdapter(selObj, IProject.class); ... might return null if selection is not the project String name = project.getName(); IPath location = project.getLocation();
要获得所有项目,请使用:
IWorkspace workspace = ResourcesPlugin.getPlugin().getWorkspace(); IProject [] projects = workspace.getRoot().getProjects();