2

我正在使用我自己的 xsd、GMF 生成的/diagram/edit/parts包和其他包生成 GMF 代码。现在我想对所有扩展ConnectionNodeEditPart类的类进行通用定制,这些类存在于/diagram/edit/parts包中。GMF 在ConnectionNodeEditPart的子类中生成了一个方法,其签名是

protected void "addChildVisual(EditPart childEditPart, int index)" 和方法内容如下。

if (addFixedChild(childEditPart)) {
        return;
}
super.addChildVisual(childEditPart, index);

现在我想自定义所有 addChildVisual 方法如下。

if (addFixedChild(childEditPart)) {
        return;
}
super.addChildVisual(childEditPart, -1);

这只是将索引更改/替换为-1

有 1000 个这样的类,每次我从一个 eclipse 版本迁移到下一个 eclipse 版本时都需要修改。这是我正在讨论的示例/简单更改。还有其他一些更改,其中添加/更改了一些方法内容,并且很少有新方法添加到 GMF 生成的代码中。

每当我们从一个 Eclipse 版本迁移到下一个版本时,这个繁琐的代码定制部分就非常麻烦。

有没有办法用新版本的eclipse/新版本的GMF重用已经定制的代码。我可以对我的自定义进行分组,假设进行 15 次修改,但每次更改都必须针对 1000 个 Java 类进行(相同的更改)。有什么方法可以自定义代码生成或使用较新版本的 eclipse/GMF 重用已经自定义的 GMF 代码?

请帮助解决这个问题。

提前致谢。

4

1 回答 1

0

在 GMF codegen 代码库中找到相应的 JET 模板,并修改相应模板中的代码。(模板名称是不言自明的)。对于不熟悉 JET 的人来说,代码模板文件应该可以理解...

于 2015-03-30T16:57:27.603 回答