我的名字是 Oleg,我正在编写高级功能 - BPEL 文件的可视化比较。我想在“比较”窗格(左和右)中使用常规编辑器作为第一步,我只想打开两个编辑器(每个文件一个)稍后我可以稍微“破解”它们,使新部分变为绿色,删除部分红色等...
所以我的问题听起来很简单,我有: - Composite - 描述 .bpel 文件的资源 我必须在这个 Composite 中打开这个资源的默认编辑器。
我将不胜感激任何提示或建议!
我尝试了什么:
我花了几天时间试图更深入地了解 GEF,但毕竟我没有为我的简单问题找到任何简单的解决方案。
来自另一个项目的人使用:
org.eclipse.gmf.runtime.notation.Diagram
org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer
diagramGraphicalViewer.setContents(diagram)
但我的编辑器是基于 GEF,而不是基于 GMF。
据我了解,我不能只打开复合编辑器,我必须使用很多“额外”的东西——EditorManager、Workbrenchs、一些网站等等。
毕竟我写了一些简单的代码,但它不起作用。可能我以绝对错误的方式写了它,但让我引用它只是为了弄清楚我真正需要什么。
File file2open = new File(new Path("/p1/name2.bpel"), (Workspace) BPELPlugin.getPlugin().getWorkspace()) { };
BPELMultipageEditorPart editorPart = new BPELMultipageEditorPart();
FileEditorInput editorInput = new FileEditorInput(file2open);
EditorDescriptor editorDescriptor = null;
try {
editorDescriptor = (EditorDescriptor)IDE.getEditorDescriptor(file2open);
} catch (PartInitException e) {
e.printStackTrace();
}
WorkbenchPage workbrenchpage = (WorkbenchPage) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
EditorSite editorSite = new EditorSite(new EditorReference(workbrenchpage.getEditorManager(), editorInput, editorDescriptor), editorPart, workbrenchpage, editorDescriptor);
try {
editorPart.init(editorSite, editorInput);
} catch (PartInitException e) {
e.printStackTrace();
}
editorPart.createPartControl(mycomposite);
upd:终于我实现了我想要的,但不确定其他人是否感兴趣:)