我有一个命令,已添加到视图的上下文菜单(具有树形查看器)和自定义编辑器的上下文菜单中。
在我的处理程序中,我有什么方法可以区分从哪个上下文菜单调用命令?这是因为在视图的情况下,我使用类似这样的东西来获取我需要的数据,
ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
.getActivePage().getSelection();
if (selection != null & selection instanceof IStructuredSelection)
{
IStructuredSelection strucSelection = (IStructuredSelection) selection;
.....
在编辑器的情况下,选择当然是空的。所以我添加了以下内容来处理编辑器部分,
IEditorPart editor = HandlerUtil.getActiveEditor(event);
IEditorInput input = editor.getEditorInput();
IPath path = ((FileEditorInput)input).getPath();
但是发生的情况是,即使我从我的视图中执行此命令,它也总是返回一个活动的编辑器。这是否意味着我必须编写单独的处理程序,这些处理程序将根据视图或编辑器是否处于焦点而处于活动状态?
谢谢!