A interface gráfica provida pelo framework Guiwe pode ser organizada em uma tela com cabeçalho, menu principal, painel principal e rodapé. No cabeçalho, no rodapé e no painel principal podem ser inseridas páginas HTML com imagens e textos como, por exemplo, logotipo, nome e descrição do sistema. O menu principal deve conter as opções de páginas que podem ser carregadas no painel principal. A organização da interface gráfica criada pelo framework Guiwe é apresentada na Figura 4.1 (a).
Figura 4.1. Organização da interface gráfica do framework Guiwe.
A Figura 4.1 (b) mostra que no painel principal da interface gráfica podem ser carregados formulários, tabelas, relatórios e outras páginas que compõem o sistema em desenvolvimento. Os formulários podem conter menus, tabelas, painéis e campos que são preenchidos pelo usuário. Cada formulário está relacionado com uma classe da camada de negócios do sistema em desenvolvimento e os campos desse formulário correspondem aos atributos dessa classe.
Os painéis representam classes que mantém um relacionamento de composição ou agregação com outras e, portanto, não possuem um formulário próprio. Um exemplo desse tipo de relacionamento existe entre uma classe que representa uma venda e outra que representa os itens de uma venda. Um painel contém um menu, uma tabela e campos e funciona de forma semelhante a um formulário. A Figura 4.2 apresenta um formulário com menu, tabela, campos e um painel que, também, possui um menu, uma tabela e campos de texto.
Figura 4.2. Componentes de um formulário do framework Guiwe.
Além de formulários, o framework deve prover meios para a construção de tabelas e relatórios. As tabelas podem carregar dados de todos os registros de uma tabela do banco de dados ou somente de alguns. Os relatórios devem permitir ao usuário filtrar os dados que devem ser apresentados. A camada de controle é responsável por carregar e enviar as informações que devem ser disponibilizadas nas tabelas e nos relatórios da camada de interface gráfica.
O framework Guiwe deve prover um mecanismo para a interligação de sua camada de interface gráfica com a camada de negócios do software para o qual está sendo instanciado. Esse mecanismo representa uma camada de controle que gerencia a execução da funcionalidade do software, criando objetos para persistir e recuperar informações da base de dados. Essas informações podem pertencer a atributos que foram declarados na própria classe ou provenientes de relacionamentos de associação ou herança. A camada de controle deve possuir pontos variáveis que permitem ao framework reconhecer e ter acesso aos valores dos atributos das classes da camada de negócios em qualquer um desses casos. Caso a camada de negócios pertença a um EAF, alguns atributos são declarados somente durante um processo de instanciação e só podem ser reconhecidos pela camada de controle em tempo de execução.
Os menus dos formulários, painéis e relatórios permitem ao usuário interagir com o sistema. A interface gráfica deve reconhecer os eventos do usuário e enviar as informações necessárias para que a camada de controle efetue a operação desejada. A
Figura 4.3 descreve, como exemplo, o que ocorre quando um usuário de um sistema implementado com o uso do framework Guiwe solicita a gravação dos dados preenchidos em um formulário.
Figura 4.3. Passos de uma operação de gravação dos dados de um formulário.
Como foi definido que o uso da linguagem Java deve ser priorizado, os formulários, painéis, tabelas, relatórios e demais páginas são construídos por classes da camada de interface gráfica do framework Guiwe, enquanto que a camada de controle é responsável por manipular objetos da camada de negócios da aplicação ou do EAF, cuja camada de interface gráfica foi instanciada do framework Guiwe. A Tabela 4.1 contém a relação de responsabilidades das camadas de interface gráfica e de controle do framework Guiwe com base nas características descritas nesta Seção.
Tabela 4.1. Responsabilidades das camadas de interface gráfica e de controle do framework Guiwe.
Camada Responsabilidade
Prover estrutura da tela.
Enviar mensagens para a camada de controle e obter resposta. Interface Gráfica
Construir páginas, formulários, painéis, tabelas e relatórios. Receber e responder mensagens da camada de interface gráfica Criar objetos da camada de negócios do sistema/EAF.
Controle
Efetuar operações sobre objetos da camada de negócios do sistema/EAF.
A Figura 4.4 apresenta o modelo de classes em nível de análise da camada de interface gráfica do framework Guiwe. Por motivos de simplificação, os métodos das classes foram omitidos. A Tabela 4.2 apresenta uma relação, com nome e descrição, das classes que aparecem no modelo da Figura 4.4.
Figura 4.4. Modelo de classes da camada de interface gráfica do framework Guiwe. Tabela 4.2. Relação das classes da camada de interface gráfica do framework Guiwe. Nome Descrição
HTMLDocument Responsável pela geração de um documento HTML. HTMLMenu Permite construir páginas que contêm um menu interativo.
HTMLPage Permite construir páginas que podem conter textos, tabelas e imagens. HTMLForm Permite construir páginas que contêm formulários com campos de texto, de seleção, de checagem (checkboxes) e de marcação exclusiva (radio). DocumentServlet Recebe uma requisição do navegador e envia código HTML.
MenuServlet Recebe uma requisição do navegador e envia o código HTML de uma página que contém um menu interativo. PageServlet Recebe uma requisição do navegador e envia o código HTML de uma página que pode conter textos, tabelas e imagens. TableServlet Recebe uma requisição do navegador e envia o código HTML de uma tabela com informações recuperadas da base de dados. FormServlet Recebe uma requisição do navegador e envia o código HTML de um formulário. PersistentFormServlet Recebe uma requisição do navegador e envia o código HTML de um formulário relacionado com uma classe persistente. PanelServlet Recebe uma requisição do navegador e envia o código HTML de um painel. ReportServlet Recebe uma requisição do navegador e envia o código HTML de um relatório.
A Figura 4.5 apresenta o modelo de classes em nível de análise da camada de controle do framework Guiwe e a Tabela 4.3 apresenta a descrição dessas classes.
Tabela 4.3. Relação das classes da camada de controle do framework Guiwe.
Nome Descrição
ControlerServlet Recebe as mensagens da camada de interface gráfica e envia as respostas. ControlerPerformer Efetua a operação solicitada sobre um objeto da classe indicada na
mensagem enviada pela camada de interface gráfica.
PersistentObject Interface que define os métodos obrigatórios para as classes persistentes. ObjectManager Permite ler e alterar, dinamicamente, os valores dos atributos de um objeto. PersistentObjectManager Permite carregar informações da base de dados.
Message Gerencia as mensagens que são enviadas à camada de interface gráfica e apresentadas ao usuário do sistema.