0

我正在实现基于表单的编辑器,它有 1 个选项卡作为表单页面。这个编辑器扩展了“FormEditor”,标签扩展了“FormPage”类。我正在使用 Jdom 进行 xml 解析。此编辑器用于修改 xml 文件。

假设,我使用这个编辑器打开了一个名为“Test.xml”的文件。然后 getEditorInput() 函数将返回 IEditorInput 即这个 xml 文件的内容。

现在,我以以下方式在基于表单的编辑器中添加了一个新的第二个选项卡作为 TextEditor:

int index = addPage(srcObj, getEditorInput());

setPageText(index, "Source");

但这里的问题是,目前它显示通过此表单编辑器打开的文件的内容。

但是,我希望如果用户在编辑器中进行任何更改(Jdom 模型也会更新)并切换到第 4 个选项卡,那么应该向他/她显示 jdom 的当前内容。

意味着用户应该能够通过此选项卡以 xml 格式查看 Jdom 的当前内容。

任何人都可以帮助我“我如何以 xml 格式在 TextEditor 中显示 Jdom 的当前状态(即内容)。” 提前致谢 !!

4

2 回答 2

0

基于一些挖掘(我对 Eclipse TextEditor API 不是很熟悉),您想要定位 TextEditor 的底层 IDocument 模型,并调用:

org.jdom2.output.XMLOutputter xout = new org.jdom2.output.XMLOutputter();
idocument.set(xout.outputString(jdomdocument);

罗尔夫

于 2013-02-22T23:50:03.450 回答
0

我从链接中找到了答案:http ://wiki.eclipse.org/Eclipse_Plug-in_Development_FAQ#How_can_I_get_the_IDocument_from_an_editor.3F

或者

XMLOutputter xmlOutput = new XMLOutputter(Format.getPrettyFormat());
String contents = xmlOutput.outputString(document); 
IDocumentProvider provider = srcObj.getDocumentProvider();
IDocument idocument = provider.getDocument(srcObj.getEditorInput());
idocument.set(contents);

谢谢罗尔夫.. :)

于 2013-02-27T12:58:55.113 回答