手动控制EditorPart生命周期以将其嵌入ViewPart中

时间:2013-01-11 09:37:10

标签: eclipse-rcp eclipse-gmf

我有一个Eclipse RCP应用程序,它使用Views来允许编辑EMF资源。资源和EditingDomain包含在Page输入中。

我们现在正在尝试集成Eclipse GMF。这会生成一个可以很好地工作的DiagramEditor,但是在Eclipse 3中,它不能在与我的应用程序的其他视图相同的堆栈中使用。编辑只能放在EditorArea中。

任何人都可以指导我找到解决方案吗?我看到了多个选项,每个选项都有明显的优点/缺点:

  1. 在IEditorSite和IViewSite之间实现转换层,因此我可以在视图中加载我的编辑器。这部分工作,但很多GMF功能突然丢失。有人肯定已经这样做了;因为我没有找到任何东西,我认为这是不可能的。
  2. 将所有视图实现为EditorParts。在应用程序中只有一个EditorArea。缺点:需要内部Workbench API来布局所有部分DZone link
  3. 生成GMF视图而不是GMF编辑器。这可能在不丢失调色板的情况下实现吗?

1 个答案:

答案 0 :(得分:2)

我两年前做过选项#2,根据您的布局要求,这是迄今为止最简单的。

选项#1几乎是不可能的,因为IViewPart功能的更大部分无法委托给子部分。只需看看多编辑器代码有多普遍 - 您可以在instanceof代码深处找到org.eclipse.ui个测试。

选项#3可能已经完成,但只能通过丢失调色板,因为这似乎是指内部编辑器内容(至少这是我2年前的笔记中所说的: - )