Repetindo por meio de Itens em um Controle de Árvore Utilizando o Método getTestData

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:

import resources.GetTreeDataExampleHelper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.script.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;

/**

  * Description : Teste Funcional Script
 * @author administrator
**/

public class GetTreeDataExample extends GetTreeDataExampleHelper
{

/**
 * Script Name : <b>GetTreeDataExample</b>
 * Generated : <b>Dec 14, 2002 6:24:48 AM</b>
 * Modified : <b>Dec 14, 2002 6:24:48 AM</b>
 * Description : Teste Funcional Script
 * Original Host : WinNT Version 5.0 Build 2195 (Service Pack 3)
 *
 * @since 2002/12/14
 * @author administrator
 */

 public void testMain (Object[] args)
 {

//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.out.println ("Available Tree Data Types: " +

tree2Tree().getTestDataTypes()); 

//Declarar variáveis para árvore
ITestDataTree cdTree;

ITestDataTreeNodes cdTreeNodes;

ITestDataTreeNode[] cdTreeNode;

//Variáveis que receberão dados da árvore
cdTree = (ITestDataTree)tree2Tree().getTestData("tree");

cdTreeNodes = cdTree.getTreeNodes();

cdTreeNode = cdTreeNodes.getRootNodes();

//Imprimir número total de nós
System.out.println ("Tree Total Node Count: " +

cdTreeNodes.getNodeCount());

System.out.println ("Tree Root Node Count : " +

cdTreeNodes.getRootNodeCount());

//Repetir por meio de ramificações da árvore; esse é um método recursivo.
for (int i = 0;i<cdTreeNode.length;++i)

showTree(cdTreeNode[i], 0);

//Encerrar o Aplicativo Classics Java
ClassicsJavaFrame(ANY,MAY_EXIT).close();

}

void showTree(ITestDataTreeNode node, int indent)
{

//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
int tabCount = ( indent < tabs.length() ? indent :

tabs.length() );

//Imprimir nome do nó + número de filhos
System.out.println(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.
ITestDataTreeNode[] children = node.getChildren();
int childCount = ( children != null ? children.length : 0 );
for ( int i = 0; i < childCount; ++i )
showTree(children[i], indent+1);
}

//Cadeia de tabulações utilizadas para recuar a visualização em árvore
final String tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";

}

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:

ITestDataTree cdTree;
cdTree = (ITestDataTree)tree2Tree().getTestData("tree");

A próxima etapa é criar uma matriz que contenha todos os nós da árvore. Isso é feito da seguinte forma:

ITestDataTreeNodes cdTreeNodes;
ITestDataTreeNode[] cdTreeNode;

cdTreeNodes = cdTree.getTreeNodes();//Encapsula os nós da
raiz.

cdTreeNode = cdTreeNodes.getRootNodes();;//Extrai os nós reais da

raiz.

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.out.println(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.