如何以编程方式更改包浏览器中的选择
我目前正在开发一个eclipse插件,用于分析Eclipse Workspace中项目之间的依赖关系和引用,并在类似UML的图中将它们显示在自己的View中。
为了增加插件的实用性,我希望通过允许用户在包浏览器中打开项目来添加图表的交互性,如果适用,通过单击显示的图表在编辑器中打开它。
但是,我的问题是,虽然我知道如何从包资源管理器中获取给定的选择,但我还是找不到更改选择的方法,或者只是以编程方式在包资源管理器中打开一个项目。
有没有人有这个问题的解决方案?
这个答案扩展了所接受的答案所陈述的内容,但对于那些在使用PackageExplorerPart
“气馁访问”警告的人更进一步。 您看到的确切警告(更容易从谷歌搜索)
不鼓励访问:由于对所需库的限制而无法访问
PackageExplorerPart
类型/eclipse_install_path/eclipse/plugins/org.eclipse.jdt.ui_3.9.1.v20130820-1427.jar
代码示例:
final IWorkbenchPart activePart = getActivePart(); if (activePart != null && activePart instanceof IPackagesViewPart) { ((IPackagesViewPart) activePart).selectAndReveal(newElement); }
支持代码:
private IWorkbenchPart getActivePart() { final IWorkbench workbench = PlatformUI.getWorkbench(); final IWorkbenchWindow activeWindow = workbench.getActiveWorkbenchWindow(); if (activeWindow != null) { final IWorkbenchPage activePage = activeWindow.getActivePage(); if (activePage != null) { return activePage.getActivePart(); } } return null; }
我找到了解决方案。 Eclipse确实提供了对org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart
的包浏览器的直接访问,但不鼓励使用它。
import org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart; ... PackageExplorerPart part= PackageExplorerPart.getFromActivePerspective(); IResource resource = /*any IResource to be selected in the explorer*/; part.selectAndReveal(resource);
这将突出显示IResource resource
,并根据需要展开树。
- 无法通过Eclipse创建可运行的jar文件
- 如何在Eclipse中的项目中包含.class文件? (JAVA)
- java中的java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
- 如何以编程方式使用TestNG运行Selenium Java测试?
- 条件Java编译
- Eclipse中导出的可运行JAR文件似乎无法执行
- 在IntelliJ或Eclipse中设置java系统属性
- ClassNotFoundException启动Tomcat时的DispatcherServlet(Maven依赖项未复制到wtpwebapps)
- Eclipse Console不显示输出