首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将乌鸦的脚添加到UMLet中?

如何将乌鸦的脚添加到UMLet中?
EN

Stack Overflow用户
提问于 2011-11-16 16:21:19
回答 1查看 2K关注 0票数 2

我使用UMLet创建类图。

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

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

EN

回答 1

Stack Overflow用户

发布于 2012-06-08 02:20:00

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

在方法setState中,我添加了:

代码语言:javascript
复制
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 = "<";
}

用同样的方法再往下走一点:

代码语言:javascript
复制
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方法中,我添加了以下内容:

代码语言:javascript
复制
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 ),所以它现在可能已经过时了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8154991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档