繁体   English   中英

Eclipse JDT中ActiveEditor的UndoContext

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM