如何将Crow的脚添加到UMLet?

时间:2011-11-16 16:21:19

标签: java entity-relationship

我正在使用UMLet来创建类图。

UMLet允许您通过编写自己的Java代码来添加自定义元素。然后将它们作为.java文件存储在程序目录中。

如何将乌鸦的脚关系添加为自定义元素?

1 个答案:

答案 0 :(得分:1)

几年前我想要同样的事情。我最后只是下载源并更改它。我相信我使用的是Umlet 10.0.3或10.3。我更改的文件是 com.umlet.element.base.Relation.java 。基本上它正在修改属性解析器代码。我添加了两个新端点:“m>”和“

在方法 setState 中我添加了:

else if (s.indexOf(">>") >= 0) {
    endArrow = "<<";

// Glenn Crow Foot Mod Begin
} else if (s.indexOf("m>") >= 0) {
    // Mulitplicity set -> crow's foot for ERD
    endArrow = "crowsFoot";
// Glenn Crow Foot Mod End

}
else if (s.indexOf(">") >= 0) {
    if (endArrow.equals("")) endArrow = "<";
}

并在同一方法中进一步向下:

else if (s.indexOf("<<") >= 0) {
    beginArrow = "<<";

// Glenn Crow Foot Mod Begin
} else if (s.indexOf("<m") >= 0) {
    // Mulitplicity set -> crow's foot for ERD
    beginArrow = "crowsFoot";
// Glenn Crow Foot Mod End

}
else if (s.indexOf("<") >= 0) {

paintEntity 方法中,我添加了以下内容:

else if (r instanceof Arrow) {
    Arrow arrow = (Arrow) r;

    // Glenn Crow Foot Mod Begin
    if (arrow.getString().equals("crowsFoot")) {
        g2.drawLine( (int) arrow.getX(), (int) arrow.getY() + arrow.getArrowEndA().y,
                     (int) arrow.getX() + arrow.getArrowEndA().x, (int) arrow.getY()    );
        g2.drawLine( (int) arrow.getX(), (int) arrow.getY() + arrow.getArrowEndB().y,
                     (int) arrow.getX() + arrow.getArrowEndB().x, (int) arrow.getY()    );
    // Glenn Crow Foot Mod End

    // A.Mueller Start
    } else if (!arrow.getString().equals("n")

我对结果很满意。但是我不想把它放在每个版本中,并且它从未添加到代码库中(我怀疑因为它不够uml-ish),所以它现在可能已经过时了。