【问题标题】:How to edit an attribute using Xtext?如何使用 Xtext 编辑属性?
【发布时间】:2013-11-22 00:41:14
【问题描述】:

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

【问题讨论】:

    标签: xtext emf


    【解决方案1】:

    由于2.2,支持的解决方案是使用IEditedResourceProviderEmbeddedEditorFactory(因为编辑属性无论如何都属于嵌入式编辑器)。 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      相关资源
      最近更新 更多