首页 > 解决方案 > Papyrus (Eclipse) - 如何通过代码生成图表?

问题描述

我需要通过代码为 Papyrus(Eclipse 霓虹灯)生成图表,但在网络上我找不到任何关于通过代码创建图表的解释,除了 BDD。

我的实际情况如下:

我收到一个 .csv 文件,其中包含一些信息,如“元素 A、连接类型、元素 B”

我需要做的是生成一个表示它们的图表,如下所示:

图表示例:

在此处输入图像描述

注意:我对在最终产品中表示颜色不感兴趣

所以我的问题是:

  1. 我应该使用 Papyrus 中的哪个图表来实现这一点?(我必须使用 Papyrus)

  2. 有人可以为我提供一些文档以通过代码生成它吗?

我在 Eclipse 社区上找到了这篇文章:https ://www.eclipse.org/forums/index.php/m/1708054/?srch=activity+diagram+programmatically#msg_1708054

但似乎没有包含生成图表的命令的类“CreateActivityDiagramCommand”。

请不要试图理解这样表示信息的意义,只是帮助我创建一个图表来做到这一点。

标签: javaeclipsediagrampapyrus

解决方案


解决了:

我找到了一种以编程方式绘制活动图的方法,因为我只需要包含简单字符串和箭头的矩形,绘制起来并不困难。

导航到 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;
    }

推荐阅读