Как я могу отобразить текущее состояние Jdom (т.е. содержимое) в TextEditor

Я реализую редактор на основе форм, который имеет 1 вкладку в качестве страницы формы. Этот редактор расширяет «FormEditor», а вкладка расширяет класс «FormPage». Я использую Jdom для разбора xml. Этот редактор используется для изменения XML-файла.

скажем, я открыл файл с именем «Test.xml» с помощью этого редактора. затем функция getEditorInput() вернет IEditorInput, т.е. содержимое этого XML-файла.

Теперь я добавил новую вторую вкладку в качестве TextEditor в моем редакторе на основе форм следующим образом:

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

setPageText(index, "Source");

но здесь проблема в том, что в настоящее время он отображает содержимое файла, который открывается через этот редактор форм.

Но я хочу, чтобы если пользователь внесет какие-либо изменения в редакторе (модель Jdom также будет обновлена) и переключится на 4-ю вкладку, то ему должно отображаться текущее содержимое jdom.

Означает, что пользователь должен иметь возможность видеть текущее содержимое Jdom через эту вкладку в формате xml.

Может ли кто-нибудь помочь мне: «Как я могу отобразить текущее состояние Jdom (т.е. содержимое) в TextEditor в формате xml». Заранее спасибо !!


person User_86    schedule 22.02.2013    source источник
comment
например, рассмотрите следующий код: try { editor = new TextEditor(); int index = addPage (редактор, getEditorInput ()); setPageText (индекс, Source__); } catch (PartInitException e) { ErrorDialog.openError(getSite().getShell(), Ошибка при создании текстового редактора, null, e.getStatus()); } В приведенном выше коде getEditorInput() используется для установки ввода для текстового редактора. но в моем случае я хочу установить документ (содержимое Jdom) в текстовый редактор.   -  person User_86    schedule 26.02.2013


Ответы (2)


Основываясь на некотором копании (я не очень хорошо знаком с API Eclipse TextEditor), вы хотите найти базовую модель IDocument TextEditor и вызвать:

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

Рольф

person rolfl    schedule 22.02.2013
comment
я нашел ответ по ссылке: wiki.eclipse.org/ или XMLOutputter xmlOutput = новый XMLOutputter(Format.getPrettyFormat()); Содержимое строки = xmlOutput.outputString(document); Поставщик IDocumentProvider = sourceFormObj.getDocumentProvider(); IDocument idocument = provider.getDocument(sourceFormObj.getEditorInput()); документ.набор (содержимое); - person User_86; 27.02.2013

я нашел ответ по ссылке: http://wiki.eclipse.org/Eclipse_Plug-in_Development_FAQ#How_can_I_get_the_IDocument_from_an_editor.3F

Or

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

Спасибо Рольф.. :)

person User_86    schedule 27.02.2013