我是 xtext 的新手,我已经使用 xtext 创建了 DSL,并且生成了工件,这生成了具有许多功能(如内容辅助和语法着色)的编辑器,现在的问题是我想将编辑器嵌入到对话框中。
为了实现此目的,我使用嵌入式编辑器,我能够获取嵌入式编辑器并将其放置在对话框中,但嵌入式编辑器不显示文件的内容。
文件 C:/Eclipse_Work/workspace/runtime_workspace/apa/ex.mydsl 包含:
import com.ex.test;
entity{
element a;
}
对话框的createcontrol()中的代码是:
IEditedResourceProvider resourceProvider=new IEditedResourceProvider() {
@Override
public XtextResource createResource() {
try {
Resource resource = resourceSet.createResource(URI.createURI("C:/Eclipse_Work/workspace/runtime_workspace/apa/ex.mydsl"));
XtextResource resource2=(XtextResource)resource;
return (XtextResource) resource;
} catch (Exception e) {
return null;
}
}
};
MyDslActivator activator = MyDslActivator.getInstance();
Injector injector = activator
.getInjector(MyDslActivator.COM_APAMA_STUDIO_QUERY_EXT_MYDSL);
@SuppressWarnings("restriction")
EmbeddedEditorFactory factory = injector.getInstance(EmbeddedEditorFactory.class);
EmbeddedEditor handle= factory.newEditor(resourceProvider).withParent(
composite);
EmbeddedEditorModelAccess partialEditor= handle.createPartialEditor();
handle.getViewer().getControl().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 2, 0));
当我运行该项目时,对话框将打开并显示一个编辑器区域,但它没有显示 ex.mydsl 中存在的代码,编辑器是空的。
请告诉我如何在嵌入式编辑器中显示代码
您必须将编辑器的初始内容指定为editablePart
的参数createPartialEditor(String prefix, String editablePart, String suffix, boolean insertLineBreaks) http://download.eclipse.org/modeling/tmf/xtext/javadoc/2.4/org/eclipse/xtext/ui/editor/embedded/EmbeddedEditor.html#createPartialEditor%28java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean%29。为了获得您的XtextResource
的内容为文本,save http://download.eclipse.org/modeling/emf/emf/javadoc/2.4.2/org/eclipse/emf/ecore/resource/Resource.html#save%28java.io.OutputStream,%20java.util.Map%29它到一个ByteArrayOutputStream
,然后使用将其转换为字符串toString.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)