所以,我正在开发一个 Eclipse 插件并尝试构建一个类似于变量视图的视图。现在,为了从调试视图中获取选定的 StackFrame,我注册了一个 IDebugContextListener,它最终会在选择时调用下面列出的方法。问题是我无法从 IStructuredSelection.getFirstElement() 获取 IStackFrame 对象。我还尝试为 IStackframe 类获取适配器。那也没用。如果有人能指出从选择中获取 IStackFrame 对象的方法,我将不胜感激。
private void contextActivated(ISelection context) {
if (context instanceof StructuredSelection) {
System.out.println("a");
Object data = ((StructuredSelection) context).getFirstElement();
if (data instanceof IStackFrame) {
System.out.println("yes");
} else {
System.out.println("no" + data.getClass().getName());
}
}
}
这样做的问题是它总是执行 else 部分(即使选择是调试视图中的 StackFrame)。此外,适配器方法不起作用。