[英]UndoContext of ActiveEditor in Eclipse JDT
我正在JDT中构建一个操作,该操作扩展了Java项目的类路径,并向活动的Java文件添加了import语句。 现在,我无法使撤消操作正常工作。 这是执行操作并将其放入撤消历史记录的代码:
ExtendClasspathOperation operation = new ExtendClasspathOperation(
"Update Classpath", document, this.context, this.className,
this.jarURI);
IOperationHistory operationHistory = OperationHistoryFactory
.getOperationHistory();
IUndoContext undoContext = PlatformUI.getWorkbench()
.getOperationSupport().getUndoContext();
operation.addContext(undoContext);
operationHistory.execute(operation, null, null);
发生的事情是,只要当前的JavaEditor不集中精力,我就可以撤消“更新类路径”。 聚焦后,只能撤消“文本编辑”。 现在的问题是,我必须使用什么IUndoContext? 我试过了:
undoContext = (IUndoContext) this.context.getASTRoot().getJavaElement()
.getAdapter(IUndoContext.class);
和
(IUndoContext)PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage()
.getActiveEditor().getEditorInput().getAdapter(IUndoContext.class)
两者都返回null。
那么,如何获得当前Java编辑器的UndoContext?
Java编辑器中的一些操作使用:
(IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class);
但是,文本编辑器源查看器中还有另一个撤消上下文。 我看不到从编辑器外部访问此文件的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.