【问题标题】:How could i display the Jdom's current state (i.e. contents) in TextEditor我如何在 TextEditor 中显示 Jdom 的当前状态(即内容)
【发布时间】:2013-02-22 13:38:31
【问题描述】:

我正在实现基于表单的编辑器,它有 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 的当前状态(即内容)。” 提前致谢!!

【问题讨论】:

  • 例如考虑下面的代码:try { editor = new TextEditor(); int index = addPage(editor, getEditorInput()); setPageText(index, "Source__"); } catch (PartInitException e) { ErrorDialog.openError( getSite().getShell(), "创建文本编辑器时出错",null, e.getStatus());在上面的代码中,getEditorInput() 用于设置文本编辑器的输入。但就我而言,我想将文档(Jdom 的内容)设置为 texteditor。

标签: java xml eclipse-plugin xml-parsing jdom


【解决方案1】:

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

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

罗尔夫

【讨论】:

  • 我从链接中找到了答案:wiki.eclipse.org/… 或 XMLOutputter xmlOutput = new XMLOutputter(Format.getPrettyFormat());字符串内容 = xmlOutput.outputString(document); IDocumentProvider 提供者 = sourceFormObj.getDocumentProvider(); IDocument idocument = provider.getDocument(sourceFormObj.getEditorInput()); idocument.set(内容);
【解决方案2】:

我从链接中找到了答案: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);

谢谢罗尔夫 .. :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 2021-07-10
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 2011-11-15
    • 2019-12-23
    相关资源
    最近更新 更多