Hallo Matthias,
Ich will mal versuchen deine Frage zu beantworten...
Die Zeile:
((DomElement) transField.get()).parseHtml(transValue);
kann so nicht funktionieren. parseHtml ersetzt nicht HTML Tags durch passenden TemplateCode.
Beispiel: Ein <a href=... > wird nicht durch ein passendes Linktemplate ersetzt.
Eine derartige Implementierung wäre sehr fehleranfällig und komplex.
In einem CMS_INPUT_DOM wird der Inhalt als DomElement gespeichtert, das ist ein eigener Datentyp von FS.
Dieser enthält DomNodes, das sind Formatvorlagen die als Absatz fungieren (Standard ist p).
Die DomNodes können beliebig geschachtelt sein und zusätzlich LinkTemplates enthalten (die wiederum ein eigenes FormData haben).
Es ist möglich aus dem FormData der Section, Dataset, whatever das DomElement auszulesen und in einen anderen zu kopieren.
Beispiel:
final Project project = this.getProject(context, projectId);
final Language lang = project.getMasterLanguage();
final FormData formData = dataset.getFormData();
final FormField<DomElement> domEditorFF = (FormField<DomElement>) formData.get(lang, "DOM_INPUT_VARIABLE");
DomElement dom = domEditorFF.get();
Wenn Manipulationen vorgenommen werden sollen, oder die Formatvorlagen nicht gleich sind, dann muss man durch alle DomNodes gehen und diese anpassen.
Beispiel:
DefaultDomNode rootDom = dom.getRoot();
//clear Dom
for (DomNode domNode : rootDom.getChildren()) {
rootDom.removeChild(domNode);
}
Um ein Formattemplate hinzuzufügen, weil man z.B. HTML importiert, geht das so
FormatTemplate p = (FormatTemplate) storeElementAgent.loadStoreElement("p", IDProvider.UidType.TEMPLATESTORE_FORMATTEMPLATE, false);
DefaultDomNode pNode = (DefaultDomNode) rootDom.appendChild(p);
pNode.appendChild(String "My text");
Wenn da mehr rein soll, können hier auch andere DomNodes oder LinkTemplates angehängt werden.
Reines HTML oder reinen Text kann ich nicht in einen DomEditor Speichern.
Mit freundlichem Gruß
Nico