Introdução

Na concretização da interface com o utilizador deve ser aplicado a Framework de Interacção com o Utilizador po-uilib.jar. A versão anterior desta framework é explicada com detalhe no seguinte documento:  desenvolvimentoAplicaçõesPO.pdf. Esta secção apresenta, e descreve com algum detalhe, as principais funcionalidades da nova versão desta framework. As classes que constituem a interface utilizador são distribuídas em código fonte Java no pacote pt.tecnico.po.ui

A interacção com o utilizador suportada por esta framework é realizada através das entidades Menu, Form e Display. Resumidamente, um menu representa uma lista de opções que o utilizador pode escolher;  um formulário representa um conjunto de informações que o utilizador precisa de inserir numa dada interacção, e um display é utilizada para informar o utilizador dos resultados da interacção.

A interacção com o utilizador disponibilizada por esta framework tem vários objectivos:
  • facilitar o teste automático da funcionalidade dos projectos desenvolvidos;
  • suportar diferentes tipos de interfaces com o utilizador (gráfica, textual via linha de comandos e web);
  • facilitar o desenvolvimento do código da aplicação responsável pela interacção com o utilizador;
  • permitir a independência entre o núcleo do projecto e a sua interface gráfica. 
Relativamente à última vantagem, o núcleo de uma aplicação é o conjunto de classes que modela e realiza o problema proposto. A interface com o utilizador dá um aspecto visível possível através do qual se podem realizar pedidos ao núcleo. Uma aplicação pode suportar diferentes interfaces com o utilizador. Por esta razão, o núcleo nunca deve aceder à interface utilizador. Da mesma forma, a interface utilizador não deve realizar operações que representam lógica de negócio relacionada com o núcleo mas apenas recolher dados, passá-los a um ou mais métodos do núcleo, e apresentar os resultados obtidos do núcleo. A lógica de negócio da aplicação a desenvolvida deve estar completamente concretizada nas várias classes do núcleo da aplicação. Desta forma, temos reutilização de código pelas várias interfaces com o utilizador que existam, não sendo necessário estar a repetir código pelas várias interfaces com o utilizador. 

O exemplo das aulas práticas editor fornece um exemplo simples para a realização de projectos mais complexos que deve ser analisado para compreender os conceitos expostos neste documento. De seguida vai-se utilizar um exemplo muito simples para descrever como é que esta framework deve ser utilizada para concretizar a interacção com o utilizador de uma aplicação. Primeiro descreve-se a funcionalidade da aplicação e depois a concretização do núcleo da aplicação e da interface com o utilizador.

Exemplo


O objectivo da aplicação a desenvolver é guardar uma série  de inteiros (únicos) inseridos pelo utilizador, sendo possível realizar as seguintes operações sobre esta lista de inteiros:
  • Acrescentar um novo número à série;
  • Remover um número da série;
  • Apresentar a lista de números inseridos;
  • Indicar o número de inteiros presente na série.

Tendo em conta esta descrição da aplicação, a concretização do núcleo (core) da aplicação é apresentada nesta secção. A secção Interacção com o Utilizador apresenta a concretização da interface com o utilizador e uma descrição mais detalhada das entidades da framework de interacção com o utilizador utilizadas no exemplo.


Código


Código fonte do exemplo: ex.jar

Código fonte da framework de interacção com o utilizador: po-uilib-source.jar

Framework de interacção com o utilizador compilado para a versão 1.8 do Java: po-uilib.jar

Javadoc da framework de interação com o utilizador.