【问题标题】:GEF - How to open Editor in Composite?GEF - 如何在 Composite 中打开编辑器?
【发布时间】:2012-01-12 17:35:33
【问题描述】:

我的名字是 Oleg,我正在编写高级功能 - BPEL 文件的可视化比较。 我想在“比较”窗格(左右)中使用常规编辑器 作为第一步,我只想打开两个编辑器(每个文件一个) 稍后我可以稍微“破解”它们,使新零件变绿, 删除部分红色等...

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

如果有任何提示或建议,我将不胜感激!

我尝试了什么:

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

使用过其他项目的人:

  • org.eclipse.gmf.runtime.notation.Diagram
  • org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer
  • diagramGraphicalViewer.setContents(diagram)

但我的编辑器是基于 GEF,而不是基于 GMF。

据我了解,我不能只打开复合编辑器 我必须使用很多“额外”的东西——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:终于实现了我想要的,但不确定其他人是否有兴趣:)

【问题讨论】:

标签: eclipse bpel eclipse-gef


【解决方案1】:

不,没有在 GEF 查看器中打开编辑器的好方法。记住: 1.“编辑器”是Eclipse平台的概念。 IE。它不仅仅是一个小部件,而是一个完整的基础设施。正如你所说 - 你需要 IEditorSite 等等。 2. GEF 的数据是“轻量级的”。整个 GraphicalViewer 是一个单一的 SWT 小部件,并在其上绘制图形 - 它们没有支持它们的操作系统小部件。

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

【讨论】:

  • 谢谢!我找到了一个允许在视图中嵌套编辑器的类。它在这里:demo.spars.info/j/… 但我需要在 Composite 中嵌套编辑器......也许我可以在我的 Composite 中以某种方式创建一个 View,然后使用这个类。你怎么看?
  • 其实...我不需要完整的编辑器。我只需要给定资源的图片。 IE。我有 - 资源(或 EditorInput) - 编辑器 ID - 复合 我需要在这个复合中写这个资源的图片。我不需要完整的编辑器,只需要用户的图片。可能这是更容易的任务......
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
相关资源
最近更新 更多