...montar um grid HTML do tipo Java | Início Anterior Próximo

...montar um grid HTML do tipo Java

Neste passo-a-passo será explicado como o desenvolvedor poderá montar um grid HTML do tipo Java a fim de demonstrar a funcionalidade desse tipo de grid que pode ser empregado quando se quer exibir dados de uma forma tabular, ou seja, em linhas e colunas onde a fonte desses dados não é suportada nativamente pelos componentes grids disponíveis no WebIntegrator.
Para a montagem desse grid é necessário que o desenvolvedor tenha algum nível de conhecimento na linguagem de programação Java. Como exemplo vamos montar um grid que irá listar as propriedades do sistema onde a máquina virtual Java está sendo executada. Essa informação pode ser recuperada usando o método getProperties() da classe System.
A primeira coisa a ser feita é criarmos uma classe Java que implemente a interface br.com.itx.integration.InterfaceGrid colocando no método execute() a lógica que irá popular a estrutura de dados a ser passada para o WI Engine que se encarregará de montar o grid.
O código-fonte da classe segue logo abaixo com os comentários explicando a sua lógica:

import br.com.itx.integration.InterfaceGrid; import java.util.Hashtable; import java.util.HashMap; import java.util.Properties; import java.util.Enumeration; import br.com.itx.util.Hash; import br.com.itx.integration.DatabaseAliases; public class TesteInterfaceGrid implements InterfaceGrid { public HashMap[] execute(Hash context, DatabaseAliases databases) { // recupera as informações do sistema Properties props = System.getProperties(); // instancia a estrutura de dados que será usada pelo WI Engine // para a montagem do grid Hashtable[] ht = new Hashtable[props.size()]; Enumeration enum = props.keys(); for (int i = 0; enum.hasMoreElements(); i++) { // cada índice do array representa uma linha de dados que pode // ser exibida no grid ht[i] = new Hashtable(); String key = (String) enum.nextElement(); // as chaves das tabelas hashes correspondem às variáveis que // serão referenciadas no modelo do grid ht[i].put("chave", key); ht[i].put("valor", props.getProperty(key)); } return ht; } public int returnType() { // sempre retornará todos os índices do array em caso de navegação // do grid return InterfaceGrid.COMPLETE; } }

Sempre que um desenvolvedor quiser implementar o seu próprio grid ele terá de criar uma classe Java que implemente a interface br.com.itx.integration.InterfaceGrid. Esta interface é composta de dois métodos: o execute(Hash, Databases) que, como explicado logo acima, conterá a lógica da montagem do array de objetos Hashtable; e o método returnType() que indica, em caso de navegação do grid, como os índices do array serão retornados. Há três maneiras dos índices serem retornados:

COMPLETE

Retorna todos os elementos do array independentemente do índice inicial que esteja sendo usado para a exibição dos dados no grid.
HAS_MORE_ROWS
Retorna os elementos do array a partir do índice inicial que esteja sendo usado para a exibição dos dados no grid, ou seja, dependendo do tamanho do array, poderá ou não haver mais registros a serem exibidos.
NO_MORE_ROWS
Retorna apenas a quantidade de elementos a serem exibidas no grid, ou seja, caso o campo Quantidade do grid esteja definido com o valor 10 então serão retornado apenas 10 índices.
Compile a classe acima e coloque o arquivo compilado (arquivo com extensão .class) em um dos repositórios de classes que seja visível à sua aplicação web. Caso o desenvolvedor queira criar classes Java que façam parte de um pacote (usando a palavra-chave package), lembre-se que ao fazer o deployment dessas classes criar a estrutura de diretórios correspondente a estrutura de nomeação dos pacotes.
Após ter compilada a classe e feito o deployment vamos configurar a página. Primeiro defina um grid HTML do tipo Java (clique em Projeto, depois no ícone e em seguida clique no link Grids HTML). Para definir um grid HTML do tipo Java basta apenas preencher o campo Identificador com o nome pelo qual referenciaremos o grid e escolher a opção JAVA no campo Tipo, neste exemplo os outros campos podem ser deixados em branco.
Depois de ter clicado no botão clique no link Editar para que possamos editar o modelo do nosso grid. Como um exemplo para o modelo veja o código-fonte abaixo:

<table border="1" cellspacing="0"> <tr> <th>Chave</th> <th>Valor</th> </tr> <!--- linha que faz referência às chaves das tabelas hashes montada pela classe TesteInterfaceGrid --> <tr> <td>|chave|</td> <td>|valor| </td> </tr> </table>

Por fim crie uma página e no pré-página coloque um elemento Grid Java onde no campo Nome da classe preencha com o nome de uma classe que implementa a interface br.com.itx.integration.InterfaceGrid que no nosso caso é TesteInterfaceGrid e, no campo Grid, escolha o grid Java que corresponde a essa classe. No código-fonte da página faça referência ao grid digitando |grid.<identificador>| substituindo <identificador> pelo identificador correspondente ao grid.