我正在研究GMF图,我需要找到一种从我自己的java类中获取图元素的方法。 我们的想法是拥有一个GMF编辑器,并从使用该编辑器创建的图表中生成代码。
我的第一个目标是在图表中有一个右键单击上下文菜单,它提供了一个菜单点,用于在控制台中打印所有当前图表节点的名称。
到目前为止,我已经做到了,我在上下文中有一个菜单点,它在我的插件中运行一个java类(实现IObjectActionDelegate),在控制台中打印文本。
但是如何从该类中获取图元素? 有没有办法接收所有图表节点的列表?
感谢您的帮助 乔
答案 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();
...