我正在使用UMLet创建类图。
UMLet允许您通过编写自己的Java代码来显示它们来添加自定义元素。然后将它们作为.java文件存储在programs目录中。
如何将鱼尾纹关系添加为自定义元素?
最佳答案
几年前我也想做同样的事情。我最终只是下载源代码并进行了更改。我相信我正在使用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")
我对结果感到满意。但是我不想在每个发行版中都添加它,并且从未将其添加到代码库中(我怀疑是因为它不够通用),所以现在可能已经过时了。