在.ecore_diagram编程中,有没有一种“正常”的方法来着色节点和边?
到目前为止我的代码:
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 ..。什么?
谢谢求救!
发布于 2018-06-15 15:27:13
不再支持"ecore_diagram“文件,您可能使用的是一个非常旧的Eclipse建模版本……
我的猜测是首先确定需要在ecore_diagram格式中更改的特性。以文本文件的形式打开该文件,找到要修改的节点,然后找到需要更改的属性。验证它是否执行了您想要的操作。
然后以编程的方式执行相同的操作。从图实例向下导航到包含需要更改的属性的元素,更改该属性的值并保存模型。
发布于 2019-05-30 20:44:20
以下是在节点的情况下执行此操作的方法,例如:
以某种方式获得我的odesign组:
Group group = odesign.getGroup()
首先创建一个UserColorPalette:
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中使用你的风格。
NodeMapping nmd = DescriptionFactory.eINSTANCE.createNodeMapping();
SquareDescription sd = StyleFactory.eINSTANCE.createSquareDescription();
sd.setColor(attributesFixedColor);
nmd.setStyle(sd);https://stackoverflow.com/questions/50869971
复制相似问题