2013-11-14 3 views
0

Xtext의 편집기를 사용하여 텍스트 파일을 편집하는 대신 EObject의 String 특성을 편집하고 싶습니다. 이것을 어떻게 할 수 있습니까? this thread을 찾았지만 임시 파일을 만드는 방법에 대해서만 언급합니다. 더 우아한 해결책이 있어야합니다. 나는 사용자 정의 EditorInput을 만들려고 생각했지만 어디서부터 시작해야할지 모르겠습니다. 미리 알려 주셔서 감사합니다!Xtext를 사용하여 속성을 편집하는 방법은 무엇입니까?

답변

0

2.2부터 지원되는 솔루션은인 IEditedResourceProvider을 사용합니다 (속성 편집은 어쨌든 포함 된 편집기에 속하기 때문에). Xtend에서 샘플 코드 (에디터가 변경 될 때마다 속성이 업데이트됩니다) : EditTemplateDialog source, StackOverflow, Eclipse Forum :

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] 
] 

기준으로합니다.