如何使用Xtext编辑属性?

时间:2013-11-14 17:07:06

标签: xtext emf

我想使用Xtext的编辑器编辑EObject的String属性,而不是编辑文本文件。我怎样才能做到这一点?我找到this thread但它只提到了创建临时文件的解决方法。必须有一个更优雅的解决方案。我想创建一个自定义EditorInput,但我不知道从哪里开始。提前感谢任何指针!

1 个答案:

答案 0 :(得分:0)

2.2以来,支持的解决方案是IEditedResourceProvider使用EmbeddedEditorFactory(因为编辑属性无论如何都属于嵌入式编辑器)。 Xtend中的示例代码(只要编辑器发生更改,属性就会更新):

val injector = MyDslActivator.instance.getInjector(MyDslActivator.COM_EXAMPLE_MY_DSL)
val resourceSet = injector.getInstance(IResourceSetProvider).get(null)
val fileExtension = injector.getInstance(Key.get(String, Names.named(Constants.FILE_EXTENSIONS)))
val resourceProvider = [|
    resourceSet.createResource(createURI('''temp.«fileExtension»''')) as XtextResource
]
injector.getInstance(EmbeddedEditorFactory).newEditor(resourceProvider).withParent(parent) => [
    createPartialEditor("", editedAttribute ?: "", "", false)
    document.addModelListener[_ | editedAttribute = document.get]
]

基于:EditTemplateDialog sourceStackOverflowEclipse Forum