首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.ecore_diagram中着色Eclasses和EReferenzes (GMF)

在.ecore_diagram中着色Eclasses和EReferenzes (GMF)
EN

Stack Overflow用户
提问于 2018-06-15 14:06:59
回答 2查看 19关注 0票数 0

在.ecore_diagram编程中,有没有一种“正常”的方法来着色节点和边?

到目前为止我的代码:

代码语言:javascript
复制
private static void saveDiagram(ResourceSet resourceSet,
        EPackage epackage, String path) {
    URI uri= URI.createFileURI(path);
    Resource overlapResource = resourceSet.createResource(uri, "ecore");


    overlapResource.getContents().add(epackage);
    Diagram d = createDiagram(epackage);

    URI diagUri = URI.createFileURI(path + "_diagram");
    Resource diagramResource = resourceSet.createResource(diagUri, "ecore");
    d.setName(diagUri.lastSegment());
    diagramResource.getContents().add(d);

    diagramResource.save(null); //In try catch block
    overlapResource.save(null); //In try catch block
}

public static Diagram createDiagram(EObject object) {
    Diagram diagram = NotationFactory.eINSTANCE.createDiagram();
    diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL);
    diagram.setElement(object);
    diagram.setType("Ecore");
    return diagram;
}

我有ecore文件,ecore_diagram文件和EPackage...我不知道..我是不是该把所有的EClasses和EReferences ..。什么?

谢谢求救!

EN

回答 2

Stack Overflow用户

发布于 2018-06-15 15:27:13

不再支持"ecore_diagram“文件,您可能使用的是一个非常旧的Eclipse建模版本……

我的猜测是首先确定需要在ecore_diagram格式中更改的特性。以文本文件的形式打开该文件,找到要修改的节点,然后找到需要更改的属性。验证它是否执行了您想要的操作。

然后以编程的方式执行相同的操作。从图实例向下导航到包含需要更改的属性的元素,更改该属性的值并保存模型。

票数 0
EN

Stack Overflow用户

发布于 2019-05-30 20:44:20

以下是在节点的情况下执行此操作的方法,例如:

以某种方式获得我的odesign组:

Group group = odesign.getGroup()

首先创建一个UserColorPalette:

代码语言:javascript
复制
UserColorsPalette colorPallette = org.eclipse.sirius.viewpoint.description.DescriptionFactory.eINSTANCE
                .createUserColorsPalette();
group.getUserColorsPalettes().add(colorPallette);
UserFixedColor fixedColor = org.eclipse.sirius.viewpoint.description.DescriptionFactory.eINSTANCE
            .createUserFixedColor();
colorPallette.getEntries().add(fixedColor);
fixedColor.setBlue(226);
fixedColor.setGreen(189);
fixedColor.setRed(161);

然后添加你在Node中使用你的风格。

代码语言:javascript
复制
 NodeMapping nmd = DescriptionFactory.eINSTANCE.createNodeMapping();
 SquareDescription sd = StyleFactory.eINSTANCE.createSquareDescription();
 sd.setColor(attributesFixedColor);
 nmd.setStyle(sd);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50869971

复制
相关文章

相似问题

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