我是Eclipse GMF的新手,我能够成功完成思维导图教程。 之后,我开始使用它开发一个图形编辑器。我使用XML模式生成了域模型。现在我需要开发图形,工具和映射定义模型。但我对它没有太多的了解。 在哪里我可以很好地了解它们?
答案 0 :(得分:2)
GMF框架确实缺少其他类似库所具有的适当文档(例如EMF,JFace等) 当我开始使用GMF时(不久前)我主要阅读GMF Forum。 然而,eclipse建模项目书有2-3章专门处理GMF。我发现它们相当乏味,乏味且过于细致。它可以作为参考,而不是作为教程......
答案 1 :(得分:2)
您可以使用此过程使用GMF制作功能图形编辑器。
我将使用以下eclipse包来使一切变得简单
工具名称: EuGENia ,作为Epsilon Eclipse Package的一部分提供,可在www.eclipse.org/epsilon上找到
步骤1: - 创建一个空的EMF项目(我希望你可能知道这个)
步骤2: - 按照 this link
上的语法在模型文件夹中创建file_name.emf文件步骤3: - 右键单击.emf文件,然后单击“生成Ecore模型”。这将生成.ecore文件
步骤4: - 使用.ecore文件,您可以生成.genmodel文件
步骤5: - 从这里开始有两种方法
选项1: - 右键单击.ecore文件,然后单击Eugenia类别下的“生成GMF编辑器”。
选项2: - 按照以下步骤
选项2,步骤1: - 右键单击.ecore文件,然后单击Eugenia类别下的“生成GMF工具,图形和地图模型”。
选项2,步骤2: - 在 this link 中打开eclipse中的GMF仪表板视图,然后将所有上述生成的文件作为GMF仪表板的输入,然后您就可以生成所需的编辑器。
解释: -
正如Protostome所说,GMF缺乏适当的文档,所以我不得不寻找方法让我的工作完成我的工具。所以经过长时间的搜索,我找到了我在第1步中给出的链接,解决了我的很多问题。我将向您解释EuGENia框架对* .emf文件的作用。
* .emf基本上是一个文本描述Ecore模型的文件。 Emfatic是此工具使用的背景技术。 EuGENia框架利用这个文件并扩展它以将GMF相关属性添加为我们使用Emfatic语法编写的ecore模型的属性(使用可以看到EuGENia在该链接中支持的各种属性)。
这样做的大部分工作都是为了给我们一个有效的GMF编辑器。
注意: - 虽然这给了我们一个很好的开始,但我发现很难做一些事情,比如根据一些路由算法等在图表上排列图像(例如,当我想显示父子表关系时工具垂直或水平分配所有内容,直到现在我都无法改变这种行为。
这是我对GMF编辑的经验,如果您需要进一步的帮助或者我对我的解释有任何疑问,请告诉我
答案 2 :(得分:0)
完成思维导图教程后,您可以做的最好的事情是,找出这些向导为mindMap.diagram生成java代码的真正功能。这就是我真正理解的。
mindmap.ecore - 定义我们需要实现的java类。
mindmap.genmodel - 用于生成我们在.ecore文件中定义的java模型代码。
现在我们有了model对象的java代码。接下来需要的是用于表示这些对象的图像。使用“图形定义模型”向导为它们生成数字。 mindmap.gmfgraph - 模型对象的图形(节点,链接)。尝试更改其属性值。
接下来我们需要定义什么对象应该在工具托盘中显示。对于该工具定义模型向导使用。 mindmap.gmftool - 使用.ecore文件选择托盘中的对象。
下一个重要的是要好好理解。我们将生成的java模型对象连接到其图形(在.gmfgraph中生成),工具托盘(在.gmftool中定义)。几次查看其属性值。 mindmap.gmfmap - 地图对象定义及其视图
然后我们可以使用create mindmap.gmfgen进行代码生成。生成的代码将使用新的思维导图模型在新的eclipse模型中运行。