• Nenhum resultado encontrado

Durante o est´agio foram utilizados v´arios tipos de conceitos te´oricos e tecnologias, alguns j´a pre-selecionados para determinadas fases, e outros selecionados no decorrer do est´agio. Esta sec¸c˜ao descreve todos os conceitos te´oricos e tecnologias aplicadas durante o est´agio, que ser˜ao referenciadas nas sec¸c˜oes que descrevem o trabalho realizado.

Na fase de desenho detalhado, a arquitectura do sistem foi descrita atrav´es da utiliza¸c˜ao da linguagem de modela¸c˜ao UML2.0. Mas esta fase tamb´em inclu´ıu uma mockup da GUI (Graphical User Interface) do PEA, implementada em Java, atrav´es da framework Eclipse RCP1 (Rich Client Platform), que mais tarde, na fase de

implementa¸c˜ao foi a framework utilizada para dar continuidade ao desenvolvimento da GUI, fazendo com que a ´unica linguagem de programa¸c˜ao utilizada durante o est´agio fosse Java.

Interessa reter esta tecnologia utilizada, e o padr˜ao de desenho sob o qual est´a estruturada: Arquitectura MVC (Model-View-Controller ). Este padr˜ao de desenho e a pr´opria framework eclipse RCP, ser˜ao descritas com maior detalhe mais abaixo. Nesta fase de implementa¸c˜ao foi tamb´em usado software Open-source para facil- itar a implementa¸c˜ao dos procedimentos de gera¸c˜ao de relat´orios. Foi utilizada uma bilblioteca chamada JasperReports2, que integra um motor de reporting e todas as

funcionalidades e especifica¸c˜oes necess´arias `a produ¸c˜ao de relat´orios. Como sendo um dos aspectos fundamentais da aplica¸c˜ao final, este software encontra-se tamb´em detalhado na sec¸c˜ao seguinte.

2.2.1

Eclipse RCP

A plataform Eclipse RCP ´e uma framework que tira partido dos melhores aspectos da arquitectura Eclipse. E composta por um conjunto de plug-ins, baseados na´ arquitectura de plug-ins do eclipse, que define uma base para o desenvolvimento de aplica¸c˜oes cliente mais complexas.

Fornece um sistema de janelas baseado nos conceitos de workbench, pespectiva, vistas, editores e ac¸c˜oes. V´arios componentes gr´aficos e de interface com o utilizador s˜ao disponibilizados atrav´es dos toolkits SWT e JFace.

Uma aplica¸c˜ao constru´ıda sob a plataforma eclipse RCP, poder´a utilizar qualquer plug-in do pr´oprio eclipse, ou qualquer plug-in desenvolvido por terceiros.

• Workbench – O workbench plug-in implementa a GUI workbench e define um n´umero de pontos de ”Extension Points”que suportam contribui¸c˜oes de

1http://www.eclipse.org

Cap´ıtulo 2. Trabalho Realizado 14 outros plug-ins, como por exemplo, menus e ac¸c˜oes para a Toolbar, opera¸c˜oes de drag&drop, di´alogos, wizards, vistas e editores.

• Perspectivas – Uma perspectiva ´e um conjunto de vistas e editores com uma determinada disposi¸c˜ao na janela do workbench. Define a visibilidade inicial, o layout e a visibilidade das ac¸c˜oes existentes. S´o uma perspectiva poder´a estar activa de cada vez.

• Editores – Um editor permite ao utilizador, abrir, editar e guardar objectos que sigam um ciclo de vida ”abrir-guardar-fechar”. Contribui com ac¸c˜oes para os menus e toolbars do workbench.

• Vistas – S˜ao as partes em que ´e poss´ıvel arrastar para qualquer posi¸c˜ao e que constituem o layout principal da janela do workbench, como definido na perspectiva.

• Ac¸c˜oes – O mecanismo de ac¸c˜oes ´e suportado pelo JFace. Permite que co- mandos do utilizador sejam completamente independentes da sua componente espec´ıfica na MMI. Uma ac¸c˜ao representa um comando que pode ser activado por um bot˜ao, op¸c˜ao no menu, ou item da toolbar. Cada ac¸c˜ao conhece as suas propriedades na MMI, que podem ser usadas para construir widgets apro- priadas para apresentar a ac¸c˜ao. Esta separa¸c˜ao permite que a mesma ac¸c˜ao seja usada em v´arios sitios na mesma MMI, e significa que ´e f´acil mudar a apresenta¸c˜ao de uma ac¸c˜ao dentro da MMI, sem ter de se mudar o pr´oprio c´odigo da ac¸c˜ao.

SWT

O SWT (Standard Widget Toolkit) ´e uma framework open source para desenvolvi- mente de GUIs em Java. Representa uma alternativa ao AWT e Swing para de- senvolvimento de applica¸c˜oes gr´aficas em java. A framework est´a escrita em Java, acendendo a bibliotecas espec´ıficas da plataforma atrav´es do Java Native Interface, melhorando assim a performance da GUI.

O toolkit define uma API port´avel dispon´ıvel para todas as plataformas supor- tadas, implementando a API, em cada plataforma, acedendo a widgets nativas, sempre que poss´ıvel. Este mecanismo permite o toolkit reflectir qualquer altera¸c˜ao no look and feel da GUI do sistema operativo onde est´a a correr, enquanto mant´em um modelo de programa¸c˜ao consistente para todas as plataformas.

JFace

O JFace ´e um toolkit de interface com o utilizador constru´ıdo sob o SWT, disponi- bilizando classes que suportam muitas das mais comuns tarefas de programa¸c˜ao. ´E

Cap´ıtulo 2. Trabalho Realizado 15 um sistema independente das pr´oprias janelas da GUI, tanto na API, como na sua implementa¸c˜ao, sendo desenhado para trabalhar com o SWT sem o esconder. O JFace inclui no toolkit os componentes comuns de interface com o utilizador, como registo de imagens, fontes, di´alogos, preferˆencias e gest˜ao de opera¸c˜oes longas com feedback na GUI.

O padr˜ao Model-View-Controller

O padr˜ao MVC ´e largamente utilizado em aplica¸c˜oes que implementem uma interface com o utilizador. A plataforma eclipse RCP oferece suporte para esta arquitectura. As sec¸c˜oes seguintes descrevem este paradigma aplicado `a eclipse RCP, detalhando a liga¸c˜ao entre as camadas da arquitectura e os componentes da plataforma que suportam o seu desenvolvimento.

A View Corresponde ao interface com o utilizador. Na plataforma Eclipse, ´e normalmente implementada pelo SWT, que suporta os widgets necess´arios para construir qualquer interface.

A RCP oferece dois tipos principais de partes da interface:

• Vistas, as partes m´oveis do interface que definem o layout do workbench. • Editores, as partes que tˆem um input associado, dentro da janela do workbench

e m´etodos de ciclo de vida adicionais, tais como editar e guardar.

O Controller E a camada do MVC respons´´ avel por receber o input do utilizador e propag´a-lo para o Model. As ac¸c˜oes do JFace s˜ao utilizadas para este objectivo, em eclipse RCP. Executar uma ac¸c˜ao corresponde a chamar o m´etodo run() da classe em quest˜ao. Cada ac¸c˜ao ´e auto-suficiente, com um identificador, uma tool tip e um icon. Desta maneira poder´a ser contribu´ıda para s´ıtios diferentes na GUI, tanto para bot˜oes como para menus.

O Model Encapsula os dados que ser˜ao mostrados na View. A biblioteca JFace fornece, para cada widget, um Viewer correspondente que estabelece a liga¸c˜ao en- tre os objectos do dom´ınio e a pr´opria widget, sem ser preciso modificar esses ob- jectos. Cada viewer necessita da especifica¸c˜ao de v´arias classes que estabelecem propriedades espec´ıficas dos dados: como apresent´a-los, como gerir o conte´udo, por exemplo.

2.2.2

JasperReports

O motor de reporting utilizado, JasperReports, ´e capaz de produzir relat´orios com formato pronto para impress˜ao, ou para ser exportado para diferentes formatos,

Cap´ıtulo 2. Trabalho Realizado 16 como PDF, XLS e RTF. Suporta tamb´em diferentes fontes de dados, usados na gera¸c˜ao dos relat´orios, como SGBD ou ficheiros XML.

Os relat´orios s˜ao produzidos atrav´es de um report design e um datasource. O report desgin ´e utilizado como um template, especificando todo o layout do relat´orio e que dados ser˜ao inclu´ıdos, atrav´es do uso de queries e campos internos que foncionam como links para os dados a inserir no relat´orio. Este report design ´e definido num ficheiro XML, que cont´em o esquema espec´ıfico.

Processo de reporting

O processo interno do motor de reporting, para gerar um relat´orio passa por uma s´erie de opera¸c˜oes espec´ıficas sobre o template inicial e a fonte de dados, cujos conceitos est˜ao explicados de seguida (encontram-se tamb´em esquematizados em 2.6):

Figura 2.6: Processo de gera¸c˜ao de relat´orios

Cap´ıtulo 2. Trabalho Realizado 17 • Compila¸c˜ao - Depois do parsing, o template precisa de ser compilado de modo a validar a sua consistˆencia e preparar todas as express˜oes e queries, numa forma de pr´e-processada, acelarando o processo seguinte.

• Preenchimento - Consiste na execu¸c˜ao das queries descritas no template, numa pre-determinada fonte de dados, preenchendo o relat´orio de acordo com o layout e estilo tamb´em definidos no template.

• Exportar ou pre-visualizar - Depois do relat´orio ser preenchido, poder´a ser exportado ou pre-visualizado.

Cap´ıtulo 2. Trabalho Realizado 18

Documentos relacionados