• Nenhum resultado encontrado

Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008

N/A
N/A
Protected

Academic year: 2021

Share "Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008"

Copied!
33
0
0

Texto

(1)

Aplicações Desktop:

Swing/SubMacroForms

Carlos Renato Alves Gouveia

Novembro/2008

(2)

Carlos Renato Alves Gouveia

• Especialista em Engenharia de Web Sites pela UFMS;

• Professor Universitário na área de Programação Java no curso de Tecnologia em Análise e Desenvolvimento de Software da Faculdade Estácio de Sá;

• Analista de TI da Companhia de Gás do Estado de Mato Grosso do Sul – MSGÁS, onde desenvolve

sistemas usando Java e Oracle, além de administração e virtualização de servidores Linux;

• Desenvolvedor colaborador do software livre Java

(3)

Tópicos:

• Desktop em Java? • Swing x SWT

• Produtividade no design

• Programando a lógica da interface

• Distribuindo a aplicação com Java Web Start • Visão geral do SubMacroForms

• CRUD no SubMacroForms

• Integração com JasperReports

(4)

Desktop em Java?

• Muito se fala de Java na web, no servidor, no backend...

E o desktop, cadê??

• Havia razões para isso:

– Problemas de performance – Dificuldade de distribuição

– Dificuldade de desenho das telas – Dificuldade de programação

(5)

Desktop em Java

• Problemas de performance resolvidos nas versões mais novas

• Distribuição resolvida com Java Web Start

• Desenho e programação resolvidas mais recentemente • Exemplos:

Imposto de Renda multiplataforma

Eclipse, IntelliJ IDEA, NetBeans, WebSphere Studio Application Developer (WSAD)

(6)

Swing x SWT

Existem algumas opções de APIs para

desenvolvimento desktop. Principais:

– Swing – SWT

Cada uma tem as suas características. É preciso

conhecer, comparar e analisar para escolher

(7)

Swing

Toolkit gráfico presente no JDK

Padrão, portado para todas as plataformas

Culpado pela má fama da lentidão do Java no

desktop por ser “emulado”

Problemas de performance foram superados

Criticado por não ter aparência “nativa”

(8)

Swing

• Exemplos de aplicações:

Imposto de renda multiplataforma

NetBeans

IntelliJ IDEA

(9)

SWT

Criado com o objetivo de usar os componentes

gráficos (widgets) de cada sistema operacional,

bem como sua aparência

Performance muito boa no Windows, varia muito

em outras plataformas

Desenvolvimento mantido pela Eclipse

Foundation

Exemplos:

Eclipse

WSAD

(10)

Quando usar?

• Mais uma questão de gosto do que uma resposta direta • Swing possui performance homogênea e é suportado

pela Sun

• SWT tende a ser mais rápido no Windows e é ligado aos componentes nativos

• Eu prefiro Swing porque é o padrão de Java, enquanto SWT é um projeto paralelo sem controle da Sun ou da comunidade Java

(11)

Produtividade no design

Antes não havia

Tudo feito na mão:

Muito tempo perdido em design

Qualidade do código dependia do desenvolvedor

Maior flexibilidade

Bem-vindo a era das ferramentas de design:

Matisse (NetBeans)

(12)

Matisse x VEP

Matisse:

Mais intuitivo e completo por enquantoNão permite editar o código

Visual Editor Project:

Suporta SWT também

“Interpreta” o código escrito, mas quando se perde, não há o que fazer...

“Mas eu não gosto do código que a ferramenta

gera...”

(13)

Programando a lógica da interface

Estudar a API gráfica e lidar com listeners,

models, jeitos diferentes de fazer as mesmas

coisas...

Você programa pra web com servlets e JSPs nus e crus?

Use uma solução de alto nível; use um

framework de binding

Ligam sua classe à interface gráfica de forma

padronizada

(14)

Distribuindo a aplicação com Java

Web Start

Como instalar e atualizar a aplicação cliente:

Vou ter que ir instalar na máquina de cada usuário?

E se quiser fazer upgrade da JVM? Ou usar uma versão específica?

Não tenho como distribuir a aplicação; é muito grande pra banda que eu tenho

(15)

Distribuindo a aplicação com Java

Web Start

• Permite distribuir as atualizações da aplicação de forma simples

• Usuário clica no ícone e tudo funciona

• Permite distribuir apenas as classes modificadas através do versionamento dos jars da aplicação

• Permite distribuir uma versão específica de JVM, se necessário

• Resolve maior limitação na adoção da tecnologia desktop

(16)

Visando Geral do SubMacroForms

• É um módulo do SubMacro com o objetivo de gerar telas de cadastro baseadas em templates XML em um

ambiente desktop, utilizando Swing

• É necessário a inclusão de algumas tags no arquivo XML, responsáveis pela configuração, disposição e

comportamento dos componentes Swing na tela • É possível utilizar as bibliotecas JasperReports,

JFreeChart, JavaMail, iText, Poi, Jcalendar, etc. para enriquecer a aplicação

(17)

CRUD no SubMacroForms

• Plug-in integrado ao NetBeans com wizard para facilitar a criação dos arquivos XML  para a geração das telas de cadastro/filtro, além de wizard para criação do projeto com a estrutura básica de classes e arquivos de

configuração

• Outras IDE’s ainda é necessário utilizar um wizard

externo, o SubMacroGen

• Desenvolvimento de telas padronizadas, extremamente rápido, inclusive Mestre/Detalhe

• Gerenciamento de Recursos de Usuários/Grupo de Usuários

(18)

CRUD no SubMacroForms

• Gerenciamento de Privilégios de Usuários

• Pouca codificação Java necessária, uma vez que já

existem vários tipos de validações de campos, máscara, tratamento de “eventos”, etc. nativos no SMF

• Fácil implementação de novos tipos de validações, máscaras, etc.

• Possibilidade de extender classe JFrameTab (classe que gera as telas de cadastro) para modificar layout e

(19)
(20)
(21)
(22)
(23)

Plug-in NB: Configuração dos

Campos

(24)

Plug-in NB: Configuração dos

Campos

(25)
(26)
(27)

Integração com JasperReports

• JasperReports: gerador de relatórios

• iReports: design visual para o JasperReports • iText: gerador de PDFs

• JFreeChart: montagem de gráficos, pode ser usado diretamente ou integrado com o JasperReports

• Poi: integração com pacotes Office e OpenOffice, para geração de documentos e planilhas

• Tela de cadastro do SMF com botão de impressão de relatório Jasper (é necessário informar o nome do arquivo Jasper nas configurações do XML)

(28)

Integração com JasperReports

JasperViewer Personalizado

Classe JImprimirTab com métodos facilitadores

para a geração do relatório (é necessário

informar apenas o arquivo Jasper e o

JRResultSetDataSource)

(29)
(30)
(31)

Integração com outros

Frameworks

• Envio de email via biblioteca JavaMail • Conexão a sites HTTP com HttpClient • Conexão a servidores de FTP

• Processamento de arquivos XML (ex. JDOM) • Criptografia e assinatura digital

• Integração com impressoras fiscais (ex. Bematech)

• Integração com bancos (geração de boletos, arquivos remessa e retorno)

• Integração com operadoras de cartões de crédito e débito

(32)

Integração com outros

Frameworks

• Hoje, estamos em fase de estudo de outros frameworks para futuras integrações:

– JavaDesktop (https://javadesktop.dev.java.net)

– Mogwai SwingFramework (http://mogwai.sourceforge.net) • Submacro:

– https://submacro.dev.java.net – http://submacro.intersite.com.br

(33)

Referências

Documentos relacionados

Com o intuito de aperfeic¸oar a realizac¸˜ao da pesquisa O/D, o objetivo do presente trabalho ´e criar um aplicativo para que os usu´arios do transporte p´ublico informem sua origem

O trabalho tem como objetivo elucidar a importância do brincar para as crianças, do contato delas com a natureza, de sua ação de ocupar espaços públicos na cidade, como praças e

Neste capítulo, será apresentada a Gestão Pública no município de Telêmaco Borba e a Instituição Privada de Ensino, onde será descrito como ocorre à relação entre

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

▪ Quanto a solução para os conflitos entre os pais e a escola, houve um grande número de pais que não responderam, o que pode nos revelar que os pais não fizeram

Estamos em um nível pré-expressivo 1 , onde o ator trabalha, em seu treinamento cotidiano, sua energia, sua presença, “o bios de suas ações e não seu significado” como nos

Principais mudanças na PNAB 2017  Estratégia Saúde da Família/Equipe de Atenção Básica  Agentes Comunitários de Saúde  Integração da AB e Vigilância 

Algumas ferramentas como a implantação da ISO 14001, as política ambientais, bem como os modelos de gestão ambiental, ao qual se subdividem em ecoeficiência,