Mit der Methode "GetTestData" durch Elemente in der Strukturbaumsteuerung iterieren

In diesem Beispiel erfahren Sie, wie Sie mit der Functional Test-Methode GetTestData über das Programm auf die Werte in den Verzweigungen der Baumstruktur zugreifen können. Im folgenden Beispiel wird erneut die Anwendung "Classics Java" getestet:

Imports Rational.Test.Ft
Imports Rational.Test.Ft.Object.Interfaces
Imports Rational.Test.Ft.Script
Imports Rational.Test.Ft.Value
Imports Rational.Test.Ft.Vp
 
Public Class GetTreeDataExample Inherits GetTreeDataExampleHelper
    ' Script Name   : GetTreeDataExample
    ' Generated     : Dec 14, 2005 6:24:48 AM
    ' Modified      : Dec 14, 2005 6:24:48 AM
    ' Description   : Functional Test Script
 
    ' since 2005/12/14
    ' author Administrator
 
    Public Function TestMain (ByVal args() As Object)
        ' Turn off Log Viewer for this example
        SetOption(IOptionName.BRING_UP_LOGVIEWER, False)
 
        'Start Classics Java Application
        StartApp("ClassicsJavaA")
 
        ' Wait for tree to appear
        Tree2Tree().WaitForExistence()
 
        ' Display available test data types available from tree
        System.Console.WriteLine("Available Tree Data Types: " + _
         Tree2Tree().GetTestDataTypes())
 
        ' Declare variables for tree
        Dim CdTree As ITestDataTree
        Dim CdTreeNodes As ITestDataTreeNodes
        Dim CdTreeNode As ITestDataTreeNode
 
        ' Variables to hold tree data
        CdTree = Tree2Tree().GetTestData("tree")
        CdTreeNodes = CdTree.GetTreeNodes()
        CdTreeNode = CdTreeNodes.GetRootNodes()


        ' Print out total number of nodes         System.Console.WriteLine("Tree Total Node Count: " + _           CdTreeNodes.GetNodeCount())         System.Console.WriteLine("Tree Root Node Count : " + _           CdTreeNodes.GetRootNodeCount())          ' Iterate through tree branches; this is a recursive method.
        Dim I As Integer     
        For I = 0 To CdTreeNode.Length - 1          ShowTree(CdTreeNode(I), 0)         Next I           ' Shut down Classics Java Application         ClassicsJavaFrame(ANY,MAY_EXIT).Close()         End Function           Public Sub ShowTree(ByVal Node As ITestDataTreeNodeNode, ByVal _             Indent As Integer)             ' Recursive method to print out tree nodes with proper             ' indenting.           ' Determine number of tabs to use - to properly indent tree         Dim TabCount As Integer         IIf (Indent < Tabs.Length(), TabCount = Indent, _           TabCount = Tabs.Length())           ' Print out node name + number of children         System.Console.WriteLine(Tabs.Substring(0, TabCount) + _           Node.GetNode() + " (" + Node.GetChildCount() + " _             Children)" )           ' Determine if node has children; recursively call this same         ' method to print out child nodes.         Dim Children As ITestDataTreeNode[] = Node.GetChildren()         Dim ChildCount As Integer
        IIf (ChildCount <> 0, ChildCount = Children.Length, _          ChildCount = 0)     
        Dim I As Integer
        For I = 0 To ChildCount - 1           ShowTree(Children(I), Indent+1)         Next I     End Sub    ' String of tabs used to indent tree view  Const Tabs As String = _     "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"  End Class

In der ersten Anzeige dieser Anwendung finden Sie eine Java Swing JTree-Komponente mit fünf Komponisten. Auf der nächsten Ebene darunter werden die zu den Komponisten verfügbaren CDs aufgelistet. Mit dem Code in diesem Beispiel werden die entsprechenden Werte aus den Verzweigungen der Baumstruktur ausgelesen und im Konsolfenster angezeigt.

Erster Schritt zum Extrahieren der Daten ist die Verwendung der Methode GetTestData. Damit werden die Daten aus der Steuerung extrahiert. Folgende Syntax wird dazu verwendet:

     Dim CdTree As ITestDataTree
     CdTree = Tree2Tree().GetTestData("tree")

Im nächsten Schritt wird eine Feldgruppe mit allen Knoten in der Baumstruktur erstellt. Gehen Sie dazu wie folgt vor:

     Dim CdTreeNodes As ITestDataTreeNodes
     Dim CdTreeNode As ITestDataTreeNode()
 
     CdTreeNodes = CdTree.GetTreeNodes()
     CdTreeNode = CdTreeNodes.GetRootNodes()

Berücksichtigen Sie, dass dieser Prozess aus zwei Schritten besteht. Zunächst müssen Sie die Methode GetTreeNodes anwenden, um ein TreeNodes-Objekt zu erstellen. Anschließend rufen Sie die Methode GetRootNodes auf, um eine Feldgruppe mit den Stammknoten für die Baumstruktur zu extrahieren.

Über die Knoten in der Baumstruktur können Sie mit Hilfe einer Rekursion für jeden einzelnen Knoten dessen Wert sowie die Anzahl direkt untergeordneter Elemente bestimmen. Dazu müssen Sie die Rekursionsmethode ShowTree anwenden. Bei einer Rekursionsmethode handelt es sich um eine Methode, die sich selbst aufruft. Mit dieser Methode können Sie sich problemlos durch eine Baumstruktur bewegen. Um den Wert des Knotens zu extrahieren, müssen Sie die Methode GetNode anwenden. Extrahieren Sie die im Knoten enthaltenen untergeordneten Elemente mit der Methode GetChildCount. Im vorliegenden Beispiel wird dazu der folgende Code verwendet:

     System.Console.WriteLine(Tabs.Substring(0, TabCount) + _
        Node.GetNode()+" (" + Node.GetChildCount() + " Children)")

Hinweis: Der zusätzliche Code in der angepassten ShowTree-Methode ermöglicht das formatierte Drucken mit Hilfe von Tabulatorzeichen zur Anzeige der Einrückungen in der Baumstruktur.

Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2002, 2004. Alle Rechte vorbehalten.