Este exemplo mostra como utilizar o método GetTestData
do Functional
Test para acessar através de programação os valores nas ramificações de um controle de
árvore. O exemplo a seguir é testado no aplicativo Classics Java:
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 : Teste Funcional Script ' since 2005/12/14 ' author Administrator Public Function TestMain (ByVal args() As Object) ' Desativar o Visualizador de Log neste exemplo SetOption(IOptionName.BRING_UP_LOGVIEWER, False) 'Iniciar o Aplicativo Classics Java StartApp("ClassicsJavaA") ' Aguardar o aparecimento da árvore Tree2Tree().WaitForExistence() ' Exibir tipos de dados de teste disponíveis na árvore System.Console.WriteLine("Available Tree Data Types: " + _ Tree2Tree().GetTestDataTypes()) ' Declarar variáveis para árvore Dim CdTree As ITestDataTree Dim CdTreeNodes As ITestDataTreeNodes Dim CdTreeNode As ITestDataTreeNode ' Variáveis que receberão dados da árvore CdTree = Tree2Tree().GetTestData("tree") CdTreeNodes = CdTree.GetTreeNodes()CdTreeNode = CdTreeNodes.GetRootNodes()
' Imprimir número total de nós System.Console.WriteLine("Tree Total Node Count: " + _ CdTreeNodes.GetNodeCount()) System.Console.WriteLine("Tree Root Node Count : " + _ CdTreeNodes.GetRootNodeCount()) ' Repetir por meio de ramificações da árvore; esse é um método recursivo.
Dim I As Integer
For I = 0 To CdTreeNode.Length - 1 ShowTree(CdTreeNode(I), 0) Next I ' Encerrar o Aplicativo Classics Java ClassicsJavaFrame(ANY,MAY_EXIT).Close() End Function Public Sub ShowTree(ByVal Node As ITestDataTreeNodeNode, ByVal _ Indent As Integer) ' Método recursivo para imprimir nós da árvore com recuo ' apropriado. ' Determinar o número de guias a serem utilizadas - para recuar adequadamente a árvore Dim TabCount As Integer IIf (Indent < Tabs.Length(), TabCount = Indent, _ TabCount = Tabs.Length()) ' Imprimir nome do nó + número de filhos System.Console.WriteLine(Tabs.Substring(0, TabCount) + _ Node.GetNode() + " (" + Node.GetChildCount() + " _ Children)" ) ' Determinar se o nó tem filhos; chamar recursivamente esse mesmo ' método para imprimir nós-filhos. 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 ' Cadeia de tabulações utilizadas para recuar a visualização em árvore 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
A primeira tela desse aplicativo é um componente Java Swing JTree
que lista cinco compositores. O nível seguinte abaixo lista os CDs disponíveis
do compositor selecionado. O código nessa amostra extrai os valores
de todas as ramificações da árvore e os exibe na janela de
console.
A primeira etapa para extrair os dados é utilizar o método GetTestData
para extrair os dados do controle. Isso é feito com a seguinte
sintaxe:
Dim CdTree As ITestDataTree CdTree = Tree2Tree().GetTestData("tree")
A próxima etapa é criar uma matriz que contenha todos os nós da árvore. Isso é feito da seguinte forma:
Dim CdTreeNodes As ITestDataTreeNodes Dim CdTreeNode As ITestDataTreeNode() CdTreeNodes = CdTree.GetTreeNodes() CdTreeNode = CdTreeNodes.GetRootNodes()
Observe que este é um processo de duas etapas. Primeiro, você deve utilizar o método GetTreeNodes
para retornar um objeto TreeNodes. Em seguida, você pode chamar o método GetRootNodes
para extrair uma matriz dos nós raízes da árvore.
Com os nós da árvore em mãos, você pode utilizar um método recursivo para passar por cada
nó para determinar seu valor e o número de filhos diretos contidos.
Isso é feito no método recursivo ShowTree
. Um método
recursivo é aquele que chama a si próprio e é uma maneira eficiente de passar
por uma estrutura em árvore. Para extrair o valor do nó, utiliza-se o método
GetNode
. Para extrair o número de filhos contidos pelo nó,
utiliza-se o método GetChildCount
. No exemplo, isso é
feito com o seguinte código:
System.Console.WriteLine(Tabs.Substring(0, TabCount) + _ Node.GetNode()+" (" + Node.GetChildCount() + " Children)")
Observe que a codificação adicional fornecida no
método ShowTree
personalizado é para ativar uma impressão formatada
utilizando tabulações para indicar o recuo da árvore.
Termos de uso | Feedback
(C) Copyright IBM Corporation 2002, 2004. Todos os Direitos Reservados.