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

minilogowi


seta ...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 grid 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 gravarclique 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.