模型文本输入即得模型图形算是research的任务,主要从两条路来进行了探究:
-
因为文本编辑器是用Xtext来做的,所以就基于Xtext的开发框架,取得文本输入的event,在输入文本时,截获输入的文本,将其文本模型转换为图形。但因为用户输入的变数太多,边输入边获得的文本往往不是最终文本,即不能将其解析成有效的模型。而且在用户边输入边转换的话,定会大大降低编辑器的performance,让用户体验非常地差。如果将边输入边转换用并行的方式处理,基于用户输入变数的问题,也不太好解决同步的问题。
这个方案在编程完成后,进行了performance的评估,可用性远远低于预期,就果断放弃了。
-
Xtext2.0提供了Xtexteditor于GMFgraphiceditor的integration,所以如果模型的文本编辑器是使用Xtext来做的而模型的图形编辑器是使用GMF来做的话,就可以使用Xtext提供的接口将这两者整合在一起。也就是说,因为Xtext和GMF都是基于EMF来开发的,整合后的编辑器就可以让用户在编辑文本模型的同时,就得到图形模型;或者在编辑图形模型的同时就得到文本模型。即文本和图形的模型是同步的。
在实现此方案的过程中,Xtext简单文本编辑器的定义,GMFgraphic editor 的定义,以及Glue工程的使用是关键。
这个research最终只实现了一个很简单的模型原型,但是还是成功地将文本编辑器和图形编辑器整合在一起了。但最终因为老板不喜欢这个方案,就放弃了,没有对此方案进行详细地证明与评估。
总结所得:
-
Xtext文本编辑器框架
-
GMF生成图形编辑器
-
Xtext texteditor与GMFgraphic editor的整合