java - Papyrus (Eclipse) - 如何通过代码生成图表?
问题描述
我需要通过代码为 Papyrus(Eclipse 霓虹灯)生成图表,但在网络上我找不到任何关于通过代码创建图表的解释,除了 BDD。
我的实际情况如下:
我收到一个 .csv 文件,其中包含一些信息,如“元素 A、连接类型、元素 B”
我需要做的是生成一个表示它们的图表,如下所示:
图表示例:
注意:我对在最终产品中表示颜色不感兴趣
所以我的问题是:
我应该使用 Papyrus 中的哪个图表来实现这一点?(我必须使用 Papyrus)
有人可以为我提供一些文档以通过代码生成它吗?
我在 Eclipse 社区上找到了这篇文章:https ://www.eclipse.org/forums/index.php/m/1708054/?srch=activity+diagram+programmatically#msg_1708054
但似乎没有包含生成图表的命令的类“CreateActivityDiagramCommand”。
请不要试图理解这样表示信息的意义,只是帮助我创建一个图表来做到这一点。
解决方案
解决了:
我找到了一种以编程方式绘制活动图的方法,因为我只需要包含简单字符串和箭头的矩形,绘制起来并不困难。
导航到 Papyrus 源代码我发现了一个org.eclipse.papyrus.uml.diagram.activity
包含CreateActivityDiagramCommand
类的包,所以我将它添加到依赖项中,然后我开始构建我的方法来生成图表
如果有人有兴趣,我做了如下:
public static Diagram createActivityDiagram(EObject owner, String name) //owner is an UML Package
{
ModelSet modelSet = null;
ResourceSet resourceSet = owner.eResource().getResourceSet();
if (resourceSet instanceof ModelSet)
modelSet = (ModelSet) resourceSet;
else
return null;
Diagram diagram;
CreateActivityDiagramCommand creatediagramCommand = new CreateActivityDiagramCommand();
diagram = creatediagramCommand.createDiagram(modelSet, owner, name);
return diagram;
}
推荐阅读
- mysql - 如何减少视图的执行时间?
- graphql - 如何在 GraphQL 中将多个对象作为数组返回
- android - 是否有可能做到这一点?从选择图像到捕获图像
- javascript - Uncaught SecurityError: Blocked a frame with origin \"null\" from access a cross-origin frame
- python - 如何在我的目录中的所有文件夹上运行子进程?
- python - 在 Python 中使用赋值表达式时如何完成赋值语句“x = y := f(x)”?
- machine-learning - PCANET中的线性层(卷积层)
- pandas - 在多列 DataFrame 上获取日志值
- php - 如何在 Symfony 4 中实现处理程序?
- javascript - 使用 SQL 数据库中的 PHP 和 JavaScript 登录