-->

Documentação do Tdk

   Tutorial / Módulo de Interface com o Usuário
Este tutorial tem como objetivo apresentar o módulo de interface com o usuário.

Aguarde. Neste tutorial você aprenderá:
  • Como utilizar o padrão de projeto MVC no TDK
  • Introdução

     

    O módulo de interface com o usuário tem como objetivo ser flexível e modular. A flexibilidade permite uma implementação genérica e independente de soluções proprietárias,  independente do pacote gráfico a ser utilizado, e a independência modular, permite um desacoplamento entre os componentes facilitando o reuso dos componentes e a manutenção do software.

    Para garantir estas características, o TDK utiliza o padrão de projeto MVC  e adota um paradigma de programação orientada a eventos, como está descrito abaixo.

     

     MVC (Model,View,Controller)

    O TDK está projetado de acordo com o padrão de projeto MVC (Model-View-Controller ).

    De forma geral, o MVC permite que uma aplicação seja extensiva e modular separando as funcionalidades do modelo do negócio da apresentação e da lógica de controle destas funcionalidades. Tal separação permite várias visões para o mesmo modelo de dados, o que permite o suporte a vários clientes mais fácil de implementar, testar e manter. O diagrama seguinte (retirado do site Java Blue Prints ) representa o padrão MVC:

    i) O Modelo representa os dados do domínio da aplicação e as regras do negócio para governar o acesso e a atualização dos dados. Frequentemente o modelo serve como uma aproximação em software do mundo real.

    ii) A Visão sintetiza o conteúdo do modelo. Ele acessa os dados do domínio da aplicação através do modelo e especifica como o dado deve ser apresentado. É de responsabilidade da visão manter a consistência na apresentação quando o modelo muda.

    iii) O Controlador traduz a interação com a visão em ações que devem ser executadas pelo modelo. Em uma aplicação cliente stand-alone , as interações com o usuário são cliques em botões ou seleções em menu, enquanto em uma aplicação Web, elas aparecem como requisições através de métodos GET e POST em HTTP. As ações executadas pelo modelo incluem ativar processos de negócio ou mudar o estado do modelo. Baseado em interações com o usuário e nas ações do modelo, o controlador responde selecionando a visão apropriada que direciona os pedidos aos objetos responsáveis por atendê-los. 

     

    Aplicando o MVC em uma aplicação, uma parte da aplicação pode ser modificada sem que as outras partes se atrapalhem. Vários problemas podem acontecer quando misturamos código de acesso a dados, de lógica do negócio e de apresentação. A manutenção destas aplicações fica difícil porque a interdependência entre os seus componentes traz um grande efeito colateral sempre que uma mudança é feita em alguma parte do código. Além disso, o alto acoplamento torna complexo ou impossível o reuso de classes porque elas dependem muito umas das outras. O padrão de projeto MVC resolve estes problemas desacoplando o acesso aos dados, a lógica do negócio e a apresentação dos dados e interação do usuário. 

    Para destacar classes do TDK de cada um dos módulos do MVC, no modelo do TDK temos a classe TdkGeographicObject que representa um objeto geográfico  da Terralib (com os seus atributos e suas geometrias), a TdkLayer que é um conjunto de TdkGeographicObjects que são da mesma natureza (ou seja, tem os mesmos atributos) e as próprias classes de geometrias da Terralib como a TePoint, TeLine2D, TePolygon, TeText, TeRaster e etc.    

    Em uma aplicação de visualização de dados geográficos, um mesmo dado do modelo pode ser apresentado na visão através de diversos mapas que podem estar associados a diferentes legendas. Os mapas e as legendas são elementos da visão. No TDK, a classe ... representa um mapa e a classe ... representa uma legenda.

    Já no controle, onde a reação à uma ação do usuário sobre os dados do modelo, podemos citar a classe TdkInteractController que é responsável pela  interação do usuário com o Canvas, "escutando" eventos de mouse click, de mouse move, de teclado, de redimensionamento e de re-desenho (repaint). Note que uma ação do usuário como um mouse click pode causar diferentes tipos de reação, como a criação de um ponto ou seleção de um objeto, isto depende da configuração do controle.

     deste módulo podemos citar a classe TdkTheme, responsável pela apresentação de um tema TerraLib encapsulando atributos de visualização como estilos de objetos selecionados.

     

             Topo ^