如何在Eclipse属性页面上包含Xtext生成的编辑器?

时间:2011-08-26 14:54:17

标签: eclipse-plugin xtext

我正在尝试在Eclipse RCP应用程序的属性页上包含我使用Xtext生成的DSL的文本编辑器。

例如,我从一个简单的Xtext语法开始:

grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals

generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"

Model:
    greetings+=Greeting*;

Greeting:
    'Hello' name=ID '!';

并从中生成文本编辑器。然后,我创建了一个新的插件项目的属性页面:

package com.example.plugin.propertypage.properties;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.dialogs.PropertyPage;

public class SamplePropertyPage extends PropertyPage {

    public SamplePropertyPage() {
        super();
    }

    protected Control createContents(Composite parent) {
        Composite composite = new Composite(parent, SWT.NONE);
        return composite;
    }

    protected void performDefaults() {
        super.performDefaults();
    }

    public boolean performOk() {
        return true;
    }

}

对于org.eclipse.core.resources.IFile的每个实例,(空)属性页面将显示在属性对话框中:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

   <extension
         point="org.eclipse.ui.propertyPages">
      <page
            name="Sample Page"
            nameFilter="*.*"
            class="com.example.plugin.propertypage.properties.SamplePropertyPage"
            id="com.example.plugin.propertypage.properties.samplePropertyPage">
         <enabledWhen>
            <instanceof
                  value="org.eclipse.core.resources.IFile">
            </instanceof>
         </enabledWhen>
      </page>
   </extension>

</plugin>

如何让生成的编辑器出现在属性页面上?

在我的研究过程中,我查看了Xtext和referenced in the Xtext User Guide附带的Xtext GMF集成示例。此示例显示如何创建弹出式Xtext编辑器。这个例子可能包含一些有价值的信息,但我无法弄清楚如何根据我的目的进行调整。

任何帮助将不胜感激。感谢。

0 个答案:

没有答案