Eclipse GEF-如何在Composite中打开编辑器?

Eclipse GEF-如何在Composite中打开编辑器?,eclipse,bpel,eclipse-gef,Eclipse,Bpel,Eclipse Gef,我的名字是Oleg,我正在编写BPEL文件的高级特性-可视化比较。 我想在“比较”窗格(左侧和右侧)中使用常规编辑器 作为第一步,我只想打开两个编辑器(每个文件一个) 后来我可以把它们“砍”一点,让新零件变成绿色, 删除部分红色等 所以我的问题听起来很简单 我有: -复合材料 -描述.bpel文件的资源 我必须在这个合成中打开这个资源的默认编辑器 我将感谢任何提示或建议 我尝试了什么: 我花了几天时间试图更深入地了解GEF, 但毕竟我没有找到任何简单的解决办法 简单的问题 来自其他项目的人员使用

我的名字是Oleg,我正在编写BPEL文件的高级特性-可视化比较。 我想在“比较”窗格(左侧和右侧)中使用常规编辑器 作为第一步,我只想打开两个编辑器(每个文件一个) 后来我可以把它们“砍”一点,让新零件变成绿色, 删除部分红色等

所以我的问题听起来很简单 我有: -复合材料 -描述.bpel文件的资源 我必须在这个合成中打开这个资源的默认编辑器

我将感谢任何提示或建议

我尝试了什么:

我花了几天时间试图更深入地了解GEF, 但毕竟我没有找到任何简单的解决办法 简单的问题

来自其他项目的人员使用:

  • org.eclipse.gmf.runtime.notation.Diagram
  • org.eclipse.gmf.runtime.diagram.ui.parts.diagrammagraphicalviewer
  • diagrammagraphicalviewer.setContents(图)
但我的编辑是基于GEF的,而不是基于GMF的

据我所知,我不能只是在composite中打开编辑器 我必须使用很多“额外”的东西-EditorManager, 工作场所、某些场所等

毕竟我写了一些简单的代码,但它没有 工作很可能我写得完全错了,但是让我 我引用它只是为了弄清楚我到底需要什么

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:我终于实现了我想要的,但不确定是否有其他人感兴趣:)

不,在GEF查看器中打开编辑器没有好方法。请记住: 1.“编辑器”是Eclipse平台的概念。也就是说,它不仅仅是一个小部件,而是一个完整的基础设施。正如你所说的,你需要一个网站等等。 2.全球环境基金的数字是“轻量级的”。整个GraphicalViewer是一个单独的SWT小部件,图形是在它上面绘制的——它们没有支持它们的操作系统小部件


因此,如果您真的需要在GEF viewer中嵌套编辑器,则必须将SWT组合放置在查看器顶部并管理其位置。

我的工作结果源代码:

谢谢!我发现了一个类,它允许嵌套编辑器内部视图。它在这里:但我需要将编辑器嵌套在复合中。。。也许我可以在我的组合中创建一个视图,然后使用这个类。你觉得呢?事实上。。。我不需要完整的编辑器。我只需要给定资源的图片。也就是说,我有-Resource(或EditorInput)-editorid-Composite,我需要在这个组合中写下这个资源的图片。我不需要完整的编辑器,只是一个用户的图片。也许这是一个更简单的任务…嘿,我想知道你是如何让它工作的。我目前正在尝试类似的方法,我认为您的方法可以帮助我。@MatF检查此屏幕截图源代码:谢谢,但不幸的是,zip只包含空文件夹?