Merlin Telas de Cadastro em Milissegundos.

Slides:



Advertisements
Apresentações semelhantes
Merlin The First Runtime GUI Generator.
Advertisements

ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A SOLICITAÇÕES DE MUDANÇA DE SOFTWARE RICARDO VOIGT Orientador: Everaldo Artur Grahl.
UTILIZANDO PORTAIS CORPORATIVOS COMO FERRAMENTA DE GESTÃO DO CONHECIMENTO: CASE EMPRESA TÊXTIL KARSTEN S.A. Felipe Rotermel Orientador: Prof. Oscar Dalfovo,
Tecnologias para Internet Thyago Maia Tavares de Farias Aula 19.
Análise Desenvolvimento/Testes Entrega Suporte. Nome da atividade Análise de Negócio Fase Análise Finalidade Esta atividade tem por finalidade analisar.
SISTEMA TUTOR INTELIGENTE PARA ENSINO SQL Acadêmico: Sandro Oscar Bugmann Orientador: Alexander Roberto Valdameri.
- slide 1 de xx Geração Automática e Assistida de Interfaces de Usuário Marcelo Mrack
Ferramenta de apoio aos testes baseados em requisitos Acadêmico: Leandro da Cunha Orientador: Everaldo Artur Grahl.
- slide 1 de xx Geração Automática e Assistida de Interfaces de Usuário Marcelo Mrack
Testes de Unidade Paulo Cheque 10/02/2009 Verão 2009.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
MÓDULOS DE REGISTRO DE ABASTECIMENTO DE VEÍCULOS INTEGRADOS PARA ÓRGÃOS PÚBLICOS Gabriel Vieira Orientador: Prof. Jacques Robert Heckmann.
FERRAMENTA PARA COMPARAÇÃO DA APLICABILIDADE DA XBRL Rosane Aparecida Braz Orientador: Wilson Pedro Carli.
Serviço de Protocolação Digital de Documentos Eletrônicos Acadêmico: Recígio Poffo Orientador: Paulo Fernando da Silva.
COLETA DO QUADRO RESUMO - VENCE 1º SEMESTRE. INFORMAÇÕES IMPORTANTES A escola deve informar No caso do Programa Vence, a classe é considerada como educação.
Diagrama de Use Cases. Objetivo  O Diagrama de Use Cases tem o objetivo de auxiliar a comunicação entre os analistas e o cliente.
FERRAMENTA PARA GERENCIAMENTO DE ARTEFATOS EM PROJETO DE MELHORIA NO PROCESSO DE TESTES. UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO.
Algoritmos e Estruturas de Dados I
I9 – CRM | DIS | FIN – SEPTEMBER / 2016
Venda Consignada. Boas vindas
AKKA.
Venda com entrega futura/ Faturamento Antecipado - ERP
TUTORIAL FRAMEWORK SPRING.
APLICATIVO PARA GERENCIAMENTO DE UMA EMPRESA DE FACTORING
UML – Diagramas de componentes
Diagrama de Use Cases.
Sistema Automatizado de Hospedagem de Sites
Sistemas Baseados no Conhecimento
UML: Casos de Uso.
Ambiente para desenvolvimento de sistemas baseado no conceito MBUIDE
UML – Diagramas de Componentes e Modelação da Arquitectura Física
Arquitetura de Computadores
PIT – PROGRAMA INTERNO DE TREINAMENTO 2015
Engenharia de Software II
FUNDAMENTO DE PROGRAMAÇÃO
Programação Orientada a Objetos
Insira sua Foto Título (FONTE ENTRE 36 e 48)
Timeout para o Datasul 12 Nov/2017.
Apresentação Conceitual
Programação Orientada a Objetos
Funções do Usuário em Matlab
Tema do Seminário: Frameworks para desenvolvimento Web Linguagem e Técnicas de Programação II – LTP2 Professor: Uedson Reis.
Programação para Internet Rica
Engenharia de Software Analise de Riscos
Elaboração de Casos de Teste Funcionais RUP
Investimento com retorno Tecnologia com simplicidade
Roteiro Motivação Proposta do Trabalho Sistemas CMS Tecnologia Utilizada Gerenciador de Conteúdos Considerações Finais Trabalhos Futuros Bibliografia/Obras.
Elaborando as Interfaces Aulas 37, 38 e 39.
Gustavo Roecker Schmitt Hans Georg Dihlmann Wendel F Ribeiro da Silva
Organização básica de arquivos
Como personalizar o site do Microsoft SharePoint Online
Prof. Esp. Marcelo Mendes
Complexidade de Algoritmos
Rosemary Silveira Filgueiras Melo
DHD – Desenvolvimento em Hardware
Laboratório I Mateus Raeder.
Laboratório I Mateus Raeder.
Acessibilidade, Usabilidade e Navegabilidade
Trabalho de Conclusão de Curso I
Geração de Código Teoria e Implementação de Linguagens Computacionais – IF688 Equipe de Monitores.
Writer Editor de texto do BrOffice.org
Estágio supervisionado na CECAE
ALGORITMOS.
Geração de Código Teoria e Implementação de Linguagens Computacionais – IF688 José Francisco Pereira Jobson Ronan
TÍTULO EM LETRAS MAIÚSCULAS (TAHOMA - 72)
Universidade Federal de Santa Catarina
Programação Orientada a Objetos
RESULUÇÃO DOS EXERCÍCIOS E
Corretor, Neste mês, teremos muitas melhorias nos produtos Auto Passeio e Auto Carga, por isso, preparamos este comunicado especial para que conheça as.
Arquitetura e padrões de software
Transcrição da apresentação:

Merlin Telas de Cadastro em Milissegundos

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 2 de 44 Sumário  Cenário  A proposta  Comparações  Características e Funcionalidades  O presente e o futuro  EOF >> panorama geral

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 3 de 44 Sobre o autor  Marcelo Mrack,  30 anos, 9 em TI, 8 em Java  Bacharel em C. Computação, UNISC – 2001  Mestrando em C. Computação, UFRGS – 2006  Atuação em projetos web e desktop n camadas  Arquiteto na 3Layer Tecnologia  Arquieto na DevelopIT  Consultor e instrutor Hibernate, Java EE  Especialidades: IHC, Patterns, geradores, PU Ágil e UML

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 4 de 44 Panorama geral  Quanto custa construir um sistema Meyers, Brad – User Interface Software Tools (1994,2002) Referências Sistema completo Interface do usuário TC TC elementares 100% 50% 30% 18% Custo de construção Pesquisas próprias (2005,2006) >> a construção da IU hoje

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 5 de 44 A construção da IU hoje  O cenário atual 1. ( WYSIWYG: /w ɪ ziw ɪ g/ ) What You See Is What You Get, ou seja o que você vê (ou o que você desenha no editor) é o que você tem quando o sistema estiver em execução. As diversas formas de construir interface de usuário e os problemas em comum AbordagensProblemas recorrentes  Escrita de código-fonte  Uso de ferramentas WYSIWYG 1  Uso de assistentes de criação  Geração baseada em modelos  Templates  MDA  Tempo elevado de construção  Quanto custa criar um template?  Demora nas alterações  Como refatorar classes já geradas?  E se o código já foi alterado?  Falta de reuso  Posso reusar o label “Nome do cliente” em projetos diferentes?  Gerência de código  Código template ou não? E a versão? >> a ferramenta proposta

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 6 de 44 A ferramenta proposta  Abdicar totalmente da geração do código-fonte  Em outras palavras, gerar a TC durante a execução do sistema, através de um processo de interpretação de meta-informações oriundas do próprio modelo de dados A idéia-chave Tempo de projetoTempo de execução CAFE class Cliente { String codigo; String nome; } new JFrame.add( Merlin.createIhc(Pessoa.class) ).setVisible(true); >> motivação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 7 de 44 Motivação  TC são funções do modelo de dados consistência, aparência, validação, organização, customizações, etc. A dependência da TC em relação ao modelo de dados Modelo de classesTela de Cadastro >> motivação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 8 de 44 Motivação  Regras clássicas >> motivação O mapeamento básico entre os elementos Modelo de dadosTela de Cadastro ClasseTela AtributoControle RelacionamentoLink

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 9 de 44 Motivação  Regras clássicas Implementando as regras clássicas ClasseTelaAtributoControleRelacionamentoLink public class Cliente { String nome; Cidade naturalidade; boolean ativo; } >> motivação Nome Cadastro de Clientes Ativo Naturalidade SalvarCancelar O cadastro gerado A classe de dados 1 1

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 10 de 44 Motivação  Regras clássicas Implementando as regras clássicas ClasseTelaAtributoControleRelacionamentoLink public class Cliente { String nome; Cidade naturalidade; boolean ativo; } >> motivação Nome Cadastro de Clientes Ativo SalvarCancelar O cadastro gerado A classe de dados 2 2 Naturalidade

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 11 de 44 Motivação  Regras clássicas Implementando as regras clássicas ClasseTelaAtributoControleRelacionamentoLink public class Cliente { String nome; Cidade naturalidade; boolean ativo; } >> o objetivo da ferramenta Nome Cadastro de Clientes Ativo Naturalidade SalvarCancelar O cadastro gerado A classe de dados 3 3

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 12 de 44 O objetivo da ferramenta  Gerar TCs elementares com o menor esforço possível Um exemplo de interface elementar a ser gerada >> algumas definições O código essencial new JFrame().add( Merlin.createIhc(Usuario.class) ).setVisible(true);

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 13 de 44 Algunas definições importantes  Contexto  É a relação entre o elemento e o ambiente em que ele ocorre  Algo é importante dependendo do local onde ele está  Empirismo  É o conhecimento baseado na experiência  Eu sei porque eu já fiz isso  É reativo  Heurística  É o conhecimento baseado em aproximações  Eu acho que sei porque eu já fiz algo parecido  É pró-ativa  Inferência  Obtém-se novos conhecimentos a partir de informações existentes  Quanto mais contexto, melhor >> o processo

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 14 de 44 O processo 1.Cria-se as classes de dados 2.Opcionalmente, decora-se elas com anotações 3.Dentro da aplicação, invoca-se Merlin.createIhc sobre a classe ou objeto >> comparação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 15 de 44 Uma pequena comparação  A mesma entrada e as diferentes saídas... Uma classe de dados para teste... public class Usuario { long codigo; String nome; String observacoes; String logradouro; int numero; Cidade cidade; String complemento; }... ou em notação UML >> comparação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 16 de 44 Uma pequena comparação  A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a)Merlin (b) Nome Cadastro de Usuário Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório Logradouro Rua São Sepé Número 256 Complemento Cidade Endereço Observações SalvarCancelar nome usuario logradouro Rua São Sepé numero 256 complemento cidade observacoes SalvarCancelar codigo >> comparação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 17 de 44 Uma pequena comparação  A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a)Merlin (b) Nome Cadastro de Usuário Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório Logradouro Rua São Sepé Número 256 Complemento Cidade Endereço Observações SalvarCancelar nome usuario logradouro Rua São Sepé numero 256 complemento cidade observacoes SalvarCancelar codigo Porque Observações é uma caixa de texto de múltiplas linhas? >> comparação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 18 de 44 Uma pequena comparação  A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a)Merlin (b) Nome Cadastro de Usuário Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório Logradouro Rua São Sepé Número 256 Complemento Cidade Endereço Observações SalvarCancelar nome usuario logradouro Rua São Sepé numero 256 complemento cidade observacoes SalvarCancelar codigo Porque é Observações e não Observacoes? >> comparação

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 19 de 44 Uma pequena comparação  A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a)Merlin (b) Nome Cadastro de Usuário Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório Logradouro Rua São Sepé Número 256 Complemento Cidade Endereço Observações SalvarCancelar nome usuario logradouro Rua São Sepé numero 256 complemento cidade observacoes SalvarCancelar codigo Qual é o campo da cidade exibido na caixa de seleção? >> características gerais

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 20 de 44 Características gerais  Essência  Não produzir código-fonte, mas sim renderizar a interface do sistema em tempo de execução  Ser independente de framework gráfico  Protótipo em Swing  Previsão para JSF  Outras aplicações podem ser SWT, XUL e GWT  Baseada no modelo de objetos do sistema  Ter uma API minimalista  Anotações  Merlin.createIhc()  Reusar (e apostar em novos) padrões  EJB3 Persistence – JSR220  Hibernate Validator – JSR299 (JBoss Seam)  Java Beans Binding – JSR295 –227 : Binding/Data Acess for J2EE, 273 : DesignTime Beans e 303 : Validation} >> características gerais

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 21 de 44 Características gerais  Não utilizar metamodelo externo  Tudo reside nas classes compiladas do sistema  Utilizar ao máximo conceitos como heurísiticas, empirismo, inferência baseada em contexto, etc.  Configuração por exceção  Reuso de histórico >> características gerais

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 22 de 44 Características gerais  Não utilizar metamodelo externo  Tudo reside nas classes compiladas do sistema  Utilizar ao máximo conceitos como heurísiticas, empirismo, inferência baseada em contexto, etc.  Configuração por exceção  Reuso de histórico O custo dos geradores tradicionais Tempo Custo S1S1 S2S2 S3S3 SnSn >> características gerais

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 23 de 44 Características gerais  Não utilizar metamodelo externo  Tudo reside nas classes compiladas do sistema  Utilizar ao máximo conceitos como heurísiticas, empirismo, inferência baseada em contexto, etc.  Configuração por exceção  Reuso de histórico O custo do Merlin Tempo Custo S1S1 S2S2 S3S3 SnSn >> histórico

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 24 de 44 O histórico  A busca por informações históricas pode ser feita no próprio classpath do sistema  Em servidores de aplicação, tudo pode ser compartilhado  Em aplicações simples (standalone), as classes com anotações podem ser exportadas junto Classes nos servidores de aplicação >> histórico RootLIBs classes S1S1 S2S2 SnSn C1C1 C2C2 CnCn

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 25 de 44 O histórico  A busca por informações históricas pode ser feita no próprio classpath do sistema  Em servidores de aplicação, tudo pode ser compartilhado  Em aplicações simples (standalone), as classes com anotações podem ser exportadas junto Classes nos servidores de aplicação >> slistaks RootLIBs Histórico classes S1S1 S2S2 SnSn C1C1 C2C2 CnCn

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 26 de 44 Slistaks  Informações de contexto, heurísticas, empirismo e inferência são utilizados para:  Gerar corretamente nomes para labels  Mapear os tipos de controles em função do tipo de dado  Adicionar validadores, tamanho, etc.  Agrupamentos Utilizando a ocorrência de termos para produzir o conteúdo em comboboxes nome status codigo 110 >> slistaks de graça

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 27 de 44 Slistaks de graça  Google como fonte de informações  Relevância de campos pode ser obtida de forma online O maior contexto gratuito do mundo: A internet nome : 212 milhões codigo : 148 milhões O termo nome é mais significativo, logo ele é usado na caixa de seleção >> mais slistaks de graça

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 28 de 44 Mais slistaks de graça  Dicionários de sinônimos  Para inferir mapeamentos de controles  observacao = informacaoComplementar = outrasInformacoes  Todos geram textAreas Utilizando um dicionário de sinônimos gratuito para inferir mapeamentos observacao >> ainda slistaks de graça Se observacao é (ou já foi) um textArea, é provável que outrasInformacoes também o seja

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 29 de 44 Ainda slistaks de graça  Algoritmos de similaridade  Para detectar aproximações e inferir correspondências  observacao = observacoes  Muitos frameworks na web Utilizando um framework externo para identificar similaridades System.out.print( StringMetrics.compare(“observacao”,”observacoes”) ); //imprime 0.8 (entre 0 e 1) Por exemplo, se o valor for maior que 0.5 os termos são conceitualmente iguais. Se observacao é (ou já foi) um textArea, é provável que observacoes também seja >> eu adoro slistaks

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 30 de 44 Eu adoro slistaks  Corretores ortográficos  Para gerar labels  observacao = observação Utilizando corretores ortográficos disponíveis no próprio ambiente >> agrupamentos

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 31 de 44 Agrupamentos  Agrupando controles nas telas  Requisito  Os campos Cidade, Rua e Número devem ser exibidos em conjunto Criando um agrupamento simples A classe de dadosA ds=“cidade,rua,numero”) class Cliente { String nome; Cidade cidade; String rua; String numero; } Cadastro de Cliente Dicas Nome SalvarCancelar Cadastro de Cliente >> dependências Rua Número Cidade Endereço

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 32 de 44 Dependências  Vinculando controles nas telas  Requisito  Se o cliente possuir cheque especial, habilitar limite de crédito Criando dependências simples A classe de dadosA tela class Cliente { String boolean possuiCheque; double limite; } Cadastro de Cliente Dicas Nome SalvarCancelar Cadastro de Cliente Limite Possui cheque >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 33 de 44 Agentes  Derivados da linguagem Eiffel, agentes são elementos que podem ser plugados na IU e executar funções diversas, como:  Tratamento de eventos  Invocação de regras de negócio  Definição de propriedades  Execução de Scripts O conceito de agentes Eventos Scripts Regras de negócio Propriedades Controle de tela >> agentes ?

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 34 de 44 Agentes  Derivados da linguagem Eiffel, agentes são elementos que podem ser plugados na IU e executar funções diversas, como:  Tratamento de eventos  Invocação de regras de negócio  Definição de propriedades  Execução de Scripts O conceito de agentes Eventos Scripts Regras de negócio Propriedades Controle de tela Agentes >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 35 de 44 Agentes  Agentes na execução de regras de negócio  Requisito  Ao preencher o salário do cliente, se ele não tiver débitos deve ser habilitado um cartão de crédito para ele. Conectando eventos e regras de negócio A classe de dadosA tela class Cliente { String event={“focusLost”}, action={“habilitarCartao”}) float salario; boolean cartaoCredito; } Cadastro de Cliente Dicas Nome SalvarCancelar Cadastro de Cliente Salário Cartão de crédito >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 36 de 44 Agentes  Agentes na execução de regras de negócio  Requisito  Ao preencher o salário do cliente, se ele não tiver débitos deve ser habilitado um cartão de crédito para ele. Implementando a regra de negócio public class AlgumasRegras { public void habilitarCartao() { JTextField salario = (JTextField) Merlin.getControle(“cliente.salario”); //processa a regra de negócio... JCheckBox cartao = (JCheckBox) Merlin.getControle(“cliente.cartaoCredito”); cartao.setEnabled(!debitos); } >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 37 de 44 Agentes  Agentes na execução de regras de negócio  Requisito (agora de forma assíncrona)  Ao preencher o salário do cliente, se ele não tiver débitos deve ser habilitado um cartão de crédito para ele. Conectando eventos e regras de negócio de forma assíncrona A classe de dadosA tela class Cliente { event={“focusLost”}, action={“habilitarCartao”}) float salario; boolean cartaoCredito; } Cadastro de Cliente Dicas Nome SalvarCancelar Cadastro de Cliente Salário Cartão de crédito >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 38 de 44 Agentes  Agentes na definição de propriedades de controles  Requisito  Aplicar uma borda verde saliente sobre o nome do cliente. Uma interface com controle customizado A classe de dadosA tela class Cliente property={“border=BorderFac tory.createLineBorder(Color.green,2)”}) String nome; float salario; boolean cartaoCredito; } Cadastro de Cliente Dicas Nome SalvarCancelar Cadastro de Cliente Salário Cartão de crédito >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 39 de 44 Agentes  Agentes na execução de scripts (BeanShell, Groovy, etc.)  Requisito  Criar uma regra externa configurável para calcular o limite de crédito do cliente em função do valor do salário. Utilizando agentes para externalizar comportamentos através de scripts A classe de dadosA tela class Cliente { String script={“/scripts/calc.js”}) float salario; float limiteCredito; } Cadastro de Cliente Dicas Nome SalvarCancelar Cadastro de Cliente Salário Limite de crédito >> agentes

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 40 de 44 Agentes  Agentes na execução de scripts (BeanShell, Groovy, etc.)  Requisito  Criar uma regra externa configurável para calcular o limite de crédito do cliente. O script externo escrito em BeanShell var salario = new Float(this.caller.getText()); var limite = Merlin.getControle(“cliente.limiteCredito”); limite.setText(salario * 0.3); /scripts/calc.js >> layout

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 41 de 44 Layout  O posicionamento de controles é totalmente executado por algoritmos, os quais utilizam  Gerenciadores de layout (TableLayout, JGoodies Forms)  Heurísiticas, UI patterns, regras de usabilidade  Configurações via anotações  Customizações  Simples  Uso de anotações  Complexas  Implementação de novos algoritmos  Malucas  Design manual >> layout

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 42 de 44 Layout  Alterando o layout via anotações  Modificando algumas coisas Redefinindo a ordem de controles e a posição de labels na tela A classe de dadosA tela class Cliente String nome; float String observacoes; } Cadastro de Cliente Salário Nome Observações >> layout

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 43 de 44 Layout  Alterando o layout via anotações  Modificando tudo de uma vez Redefinindo a ordem de controles e a posição de todos os labels na tela A classe de dadosA class Cliente String nome; float salario; String observacoes; } Cadastro de Cliente Salário Nome Observações 7 >> layout

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 44 de 44 Layout  Um layout maluco  Eu quero do meu jeito >> layout Um layout manual A tela Cadastro de Cliente Salário Nome Observações

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 45 de 44 Layout  Criando um layout maluco 1.Cria-se uma classe IU com o layout desejado Um exemplo de layout manual O template TemplateMaluco extends JPanel Cadastro de Cliente >> layout

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 46 de 44 Layout  Criando um layout maluco 2.Define-se nomes de controles idênticos aos que serão gerados Um exemplo de layout manual O template Cadastro de Cliente TemplateMaluco extends JPanel lblSalario salario lblNome nome observacoes lblObservacoes >> layout

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 47 de 44 Layout  Criando um layout maluco 3.Executa-se a geração passando o template como parâmetro Merlin.createIhc(Cliente.class, TemplateMaluco.class); Um exemplo de layout manual O template Cadastro de Cliente Salário Nome Observações >> extensões

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 48 de 44 Extensões  Modificando os controles de tela gerados Uma interface padrão A classe de dadosA tela gerada Cadastro de Cliente Dicas Nome Naturalidade SalvarCancelar Cadastro de Cliente class Cliente { String nome; Cidade naturalidade } >> extensões

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 49 de 44 Extensões  Modificando os controles de tela gerados Uma interface com controle customizado A classe de dadosA tela gerada class Cliente { String Cidade naturalidade } Cadastro de Cliente Dicas Nome Naturalidade SalvarCancelar Cadastro de Cliente >> extensões

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 50 de 44 Extensões  Modificando os controles de tela gerados Criando o controle customizado class Lookup extends JPanel //faz como quiser } Uma interface com controle customizado A classe de dadosA tela gerada class Cliente { String Cidade naturalidade } Cadastro de Cliente Dicas Nome Naturalidade SalvarCancelar Cadastro de Cliente >> demos

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 51 de 44 Demos  Dois demos simples  Criando uma tela simples  Colobando renderizadores e binders cutomizados >> estágio atual e perspectivas

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 52 de 44 Estágio atual e perspectivas  Divulgação  Alfa release disponível  Controles básicos, agentes, layout e anotações essenciais  Telas de cadastro simples  Parte teórica em desenvolvimento  Binding, telas mestre-detalhte, integração com outros frameworks  Captação de recursos financeiros  2008  Beta release em Swing, Alpha release em JSF  2009 em diante  Desenvolvimento efetivo do projeto, gerência de realimentação  2010  produto para o mercado >> EOF

Merlin - Um Novo Horizonte na Criação das Telas de Cadastroslide 53 de 44 Fim  Conteúdo      Contato   Histórias 