首页 > 解决方案 > Eclipse 插件:如何查找用户从哪个视图中打开了对话框?

问题描述

我知道如何找出像“项目资源管理器”这样的视图是否在 Eclipse 中打开。但是如何确定用户是从“z/OS 项目”视图还是从“项目资源管理器”视图打开了一个对话框?

根据结果​​,我需要在当前活动视图中找到一个文件。这部分我已经介绍过了。

标签: javaeclipseeclipse-plugin

解决方案


在扩展的处理程序类中,AbstractHandler您可以使用该HandlerUtil方法从执行事件中获取各种信息。

对于当前选择,您可以使用:

IStructuredSelection sel = HandlerUtil.getCurrentStructuredSelection(event);

传递给处理程序event的位置在哪里。ExecutionEvent

要获取选择中包含的任何资源(例如IFile),请使用:

IResource resource = Adapters.adapt(sel.getFirstElement(), IResource.class);

(你也可以直接适应IFile)。

注意:两者getCurrentStructuredSelectionAdapters都只是在相当新的 Eclipse 版本中。对于旧版本,代码稍微复杂一些。


推荐阅读