Eclipse GMF以编程方式获取图元素

时间:2014-04-30 08:33:13

标签: java eclipse

我正在研究GMF图,我需要找到一种从我自己的java类中获取图元素的方法。 我们的想法是拥有一个GMF编辑器,并从使用该编辑器创建的图表中生成代码。

我的第一个目标是在图表中有一个右键单击上下文菜单,它提供了一个菜单点,用于在控制台中打印所有当前图表节点的名称。

到目前为止,我已经做到了,我在上下文中有一个菜单点,它在我的插件中运行一个java类(实现IObjectActionDelegate),在控制台中打印文本。

但是如何从该类中获取图元素? 有没有办法接收所有图表节点的列表?

感谢您的帮助 乔

1 个答案:

答案 0 :(得分:0)

尝试以下内容:

IWorkbenchPage page = window.getActivePage();
if (page == null) return null;

IEditorPart editor = workbenchPage.getActiveEditor();
if (editor == null) return null;

if (! (editor instanceof DiagramDocumentEditor)) return null;

DiagramDocumentEditor diagramEditor = (DiagramDocumentEditor) editorPart;
DiagramEditPart diagramEditPart = diagramEditor.getDiagramEditPart();
Object diagramObject = diagramEditPart.getModel();

if (! (diagramObject instanceof DiagramImpl)) return null;

DiagramImpl diagramImpl = (DiagramImpl) diagramObject;

EObject myGmfDiagramElements = diagramImpl.getElement();

...