45.1.5
installCustomWebResolver - Tabelle und TreeTable

Für das Mappen von Tabellen ist es notwendig sowohl die Hauptkomponente selbst, also diejenige, die alle Einträge enthält, wie auch die Tabellenzeilen, welche einzelne Zellen enthalten und die Tabellenzellen zu mappen. Darüber hinaus muss sowohl die Zeile, welche die Überschriften enthält, als auch die einzelnen Überschriften generischen Klassen zugewiesen werden.

Klasse Notwendige Komponenten / Unterelemente
Table Stellt die Tabelle dar, beinhaltet die Einträge.
TableRow Stellt eine Tabellenzeile dar.
TableCell Stellt eine Tabellenzelle dar.
TableHeader Stellt die Zeile mit den Überschriften dar.
TableHeaderCell Stellt eine Überschrift dar.
  Optionale Unterelemente
CheckBox:TableCellCheckBox (Optional) Stellt eine CheckBox unter einer Tabellenzelle dar.
Icon:TableCellIcon (Optional) Stellt ein Icon unter einer Tabellenzelle dar.
CheckBox:TableCellHeaderCheckBox (Optional) Stellt eine CheckBox unter einer Tabellenüberschrift dar.
Icon:TableCellHeaderIcon (Optional) Stellt ein Icon unter einer Tabellenüberschrift dar.
Tabelle 45.1:  Mapping von Tabellen

Im Falle einer TreeTable, können Sie hier statt Table jeweils TreeTable anwenden.

Beispiel:

Die folgenden HTML Befehle definieren zwei Tabellen, eine Datentabelle und eine weitere für die räumliche Anordnung von Buttons:

<div role="datatablecontainer">
    <table>
        <th type="header">
            <td class="datacell">Form</td>
            <td class="datacell">Farbe</td>
        </th>
        <tr>
            <td class="datacell">Quadrat</td>
            <td>Rot</td>
        </tr>
        <tr>
            <td class="datacell">Raute</td>
            <td class="datacell">Blau</td>
        </tr>
    </table>
</div>
<table>
     <tr>
        <td>
            <div class="button">Speichern</div>
            <div class="button">Abbrechen</div>
        </td>
    </tr>
</table>
Beispiel 45.1:  HTML Table

Nachfolgender Prozeduraufruf mappt nur die Datentabelle auf eine Tabellekomponente von QF-Test, nicht aber die Tabelle, die für die Anordnung der Buttons verwendet wird:

 
 
installCustomWebResolver
Mappt eine Tabelle.
Parameter
resolver custom
version
genericClasses button=Button,
datacell=TableCell@::ancestor=TableRow  

attributesToGenericClasses role=datatablecontainer=Panel:myTablePanel,
type=header=TableHeader=TH  

tagsToGenericClasses TABLE=Table@::parent=Panel:myTablePanel,
TD=TableHeaderCell@::ancestor=TableHeader,
TR=TableRow@::ancestor=Table  

ignoreTags DIV,SPAN,TABLE
 
 

In der Zuweisung role=datatablecontainer=Panel:myTablePanel wurde der Klassentyp myTablePanel frei "erfunden". Damit ist das DIV Objekt eindeutig definiert und kann in der Spezifizierung der Tabelle mit @::parent=Panel:myTablePanel verwendet werden.

Beachten Sie folgende Zuweisung für die Spaltenüberschriftenzeile type=header=TableHeader=TH. Dies ist wie folgt zu lesen: Das Attribut type mit dem Wert header wird der generischen Klasse TableHeader zugewiesen, aber nur, wenn das HTML-Tag gleich th ist.

Um sicher zu gehen, dass die Zuweisungen der weit verbreiteten Tags TR und TD an anderen Stellen nicht zu Problemen führen, wird @::ancestor=... angehängt.

GUI-Elemente mit dem Tag TABLE, die keiner QF-Test Tabelle zugewiesen wurden, sollen nicht in der QF-Test Komponentenhierarchie erscheinen. Daher der Eintrag TABLE im Parameter ignoreTags, zusätzlich zu den Standardeinträgen DIV und SPAN, die bewirken, dass nicht zugewiesene DIV und SPAN Objekte die Komponentenhierarchie nicht unnötig aufblähen.