aVogt
Returning Creator

CMS_INPUT_DOM in einem Script erzeugen

Hallo,

ich benötige in einem Script ein Dom-Feld. Das kann ich auch erzeugen, allerdings habe ich ein Probleme bei der Definition/Speicherung von Listen.

Ich möchte nur zwei Typen erlauben.

Mit gomDom.setListConfig("style:Listenart[0:Strich|2:Zahlen]"); kann ich diese setzen und es kann dann auch nur eine der beiden ausgewählt werden.

Wenn ich nun den Datensatz über die Datenquelle ansehe (über das zugeh. Formular) bekomme ich die Meldung:

java.lang.NumberFormatException: For input string: "list-style-type:disc;"
  at java.lang.NumberFormatException.forInputString(Unknown Source)

bzw.


java.lang.NumberFormatException: For input string: "list-style-type:decimal;"
  at java.lang.NumberFormatException.forInputString(Unknown Source)

Die Daten werden für das DOM-Feld nicht angezeigt. In dem Datensatz ist folgendes gespeichert (Datenbank):

          <ul attributes="style%3D0%3A%7C%3A" style="list-style-type:disc;">
bzw.
          <ul attributes="style%3D2%3A%7C%3A" style="list-style-type:decimal;">

Beim "normalen" editieren, also über das Formular in der DB steht dann
          <ul style="0">

Das erzeugte DOM-Feld sieht folgendermaßen aus (zumindest sehe ich keinen Unterschied zu anderen DOM-Feldern):

  <CMS_INPUT_DOM
    name="cs_chgGrund"
    allowEmpty="no"
    bold="no"
    italic="no"
    listConfig="style:Listenart[0:Strich|2:Zahlen]"
    maxCharacters="1500"
    rows="20">
    <LANGINFOS>
      <LANGINFO lang="*" label="Änderungsgrund:"/>
    </LANGINFOS>
    <LINKEDITORS>
      <LINKEDITOR name=""/>
    </LINKEDITORS>
  </CMS_INPUT_DOM>

Es gibt noch ein gomDom.setListDefaultConfig(String linkDefaultConfig); da konnte ich aber reinschreiben was ich wollte, hat auch nicht geholfen (oder ich hab was falsches geschrieben)

Muss ich noch was setzen?

Grüße

Andreas

0 Kudos
2 Replies
gockel
Crownpeak employee

Verstehe ich das richtig, dass sie das Formularobjekt des Doms komplett selbst erzeugen?

Gibt es einen Grund warum sie die Dom-Definition nicht im Formularreiter des Skriptes machen?

Also in etwa so:

script = context.getScript();

gomProvider = script.getGomProvider();

dom = gomProvider.get(0); // gui xml has only one component (dom)

0 Kudos
aVogt
Returning Creator

Verstehe ich das richtig, dass sie das Formularobjekt des Doms komplett selbst erzeugen?

Ja. Ich hatte dass mal in Arbeitsablauf mit unterschiedlichen Datenmasken erläutert.

so erzeuge ich das DOM:

 

GomDom gomDom = new GomDom();

Designator d = ValueOfContractor.Invoke.valueOf(Designator.class, "cs_chgGrund");

gomDom.setName(d);

gomDom.setAllowEmpty(YesNo.NO);

gomDom.setBold(YesNo.NO);

gomDom.setItalic(YesNo.NO);

gomDom.setRows(PositiveInteger.valueOf(row));

gomDom.setMaxCharacters(PositiveInteger.valueOf(maxCharStringsD));

final DefaultGomLangInfos langIAg = gomDom.getLangInfos();

langIAg.add(new DefaultGomLangInfo("*", "Änderungsgrund:", null));

GomLinkEditorList glel = gomDom.getLinkEditors();

glel.add(new GomNamedEntry("LINKEDITOR", ""));

gomDom.setListConfig("style:Listenart[0:Strich|2:Zahlen]");

gomEditorProvider.add(gomDom);

Damit sieht das DOM wie in der Fragestellung aus. Es wird richtig angezeigt und ich kann das tun/nicht tun was ich beabsichtige.

Nur habe ich die oben beschriebenen Probleme mit der Liste

0 Kudos