'CustomWebResolver' – Liste

Für das Mappen von Listen ist es notwendig sowohl die Listenkomponente selbst, also diejenige, welche alle Einträge beinhaltet, sowie die einzelnen Listeneinträge zu mappen.

KlasseNotwendige Komponenten / Unterelemente
ListStellt die Liste dar, beinhaltet alle Listeneinträge.
Item:ListItemStellt einen Listeneintrag dar.
 Optionale Unterelemente
CheckBox:ListItemCheckBox(Optional) Stellt eine CheckBox unter einem Listeneintrag dar.
Icon:ListItemIcon(Optional) Stellt ein Icon unter einem Listeneintrag dar.
Tabelle 49.4:  Mapping von Listen

Im Falle von ComboBoxen können Sie auch die spezielle ComboBox Liste spezifizieren mittels List:ComboBoxList und Item:ComboBoxListItem.

Beispiel:

Folgender HTML-Code bildet eine Liste ab:

<ul class="datalist">
  <li class="list-item">Eintrag A</li>
  <li class="list-item">Eintrag B</li>
  <li class="list-item">Eintrag C</li>
  <li class="list-item">Eintrag D</li>
  <li class="list-item">Eintrag E</li>
</ul>
Beispiel 49.24:  HTML List

Hier hat man die Auswahl, ob man die HTML-Tags mappt oder die CSS-Klassen. Es ist sicherer, die CSS-Klassen zu nehmen. Bei datalist spricht vieles dafür, dass sich diese Klasse nur auf Listen im Sinne von QF-Test bezieht. Bei list-item können wir sicherheitshalber ancestor: List hinzufügen, um sicherzugehen, dass wir hier nicht Unterelemente anderer komplexer Komponenten mappen. (z.B. bei hier nicht dargestellten Tabellen, deren Zellen durchaus auch die CSS-Klasse list-item haben könnten.)

Man könnte auch die HTML-Tags mappen. Dies birgt nur die große Gefahr, dass diese im HTML-Code an anderer Stelle für andere Komponenten verwendet werden und dann das Mapping in QF-Test nicht passt. Wenn Ihnen so etwas passiert und Sie nicht herausfinden, warum ein Mapping nicht greift, ist es hilfreich, sich die vorhandenen Mappings über die Prozedur qfs.web.cwr.dumpConfiguration anzeigen zu lassen.

genericClasses:
- List: datalist
- Item:ListItem:
    class: list-item
    ancestor: List
Beispiel 49.25:  HTML Liste