2013-11-14 1 views
0

Я хочу использовать редактор Xtext для редактирования атрибута String EObject вместо редактирования текстового файла. Как я могу это достичь? Я нашел this thread, но в нем упоминается обходной способ создания временного файла. Должно быть более элегантное решение. Я думал о создании пользовательского EditorInput, но я не уверен, с чего начать. Спасибо заранее за любые указатели!Как отредактировать атрибут с помощью Xtext?

ответ

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 source, StackOverflow, Eclipse Forum.