0

フォーム ページとして 1 つのタブを持つフォーム ベースのエディターを実装しています。このエディタは「FormEditor」クラスを拡張し、タブは「FormPage」クラスを拡張します。XMLの解析にJdomを使用しています。このエディターは、xml ファイルを変更するために使用されます。

たとえば、このエディターを使用して「Test.xml」という名前のファイルを開きました。getEditorInput() 関数は IEditorInput 、つまりこの xml ファイルのコンテンツを返します。

ここで、次の方法で、フォームベースのエディターに TextEditor として新しい 2 番目のタブを追加しました。

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

setPageText(index, "Source");

しかし、ここでの問題は、現在、このフォーム エディターで開かれたファイルの内容が表示されることです。

しかし、ユーザーがエディターで変更を加えた場合 (Jdom モデルも更新されます)、4 番目のタブに切り替えると、jdom の現在の内容が表示されます。

つまり、ユーザーは、このタブを介して XML 形式で Jdom の現在のコンテンツを表示できる必要があります。

「Jdom の現在の状態 (コンテンツなど) を TextEditor で xml 形式で表示するにはどうすればよいか」ということを教えてください。前もって感謝します !!

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 に答える