GMF中,如何不打开editor得到此editor的模型对象

         在前面的博客中,我介绍了一些如何获得activie editor里面图元属性的方法。

         但如果我们要进行一些比较高级的定制,比如需要分析每个图与每个图之间、或者每个图中的图元与另一个图中的图元有什么关系,则这时我们便会遇到一个麻烦:如何不打开editor而通过此editor对应的文件得到此editor的模型对象(可以通过此模型对象获得diagram的属性,比如图的name,author,drawDate),或者得到此editor里面图元的模型对象?

         在我的项目里便遇到这样的问题。解决办法如下:

        URI fileUri = URI.createFileURI(modelFilePath);  // 这里的modelFilePath指model文件路径,而不是diagram文件路径,因为diagram文件存储的是图形的类型、位置等信息,而model文件存储的是图形的属性信息。

        ResourceSet resourceSet  = new ResourceSetImpl(); 

        Resource resource = resourceSet.getResource(fileUri, true); // 通过文件路径获得对应的资源(内存模型)

        EList<EObject> eList = resource.getContents();

        EObject eObject = eList.get(0); // 得到此图(或者说此editor)对应的EObject对象

        String s = ((XXXDiagramImpl) eObject).getAuthor(); // 得到此图的作者信息

        String s =  ((XXXDiagramImpl) eObject).getXXX().get(0).getName(); // 得到此图中某个图元的名称

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值