www.3layer.com.br
                                                     www.3layer.com.br
             Merlin
Um Novo Horiz...
www.3layer.com.br
Sumário
                                                                          >> panorama geral


 C...
www.3layer.com.br
Sobre o autor
 Marcelo Mrack, mmrack@gmail.com
   29 anos, 8 em TI, 6 em Java
   Bacharel em C. Computaç...
www.3layer.com.br
  Panorama geral
                                                                                       ...
www.3layer.com.br
A construção da IU hoje
                                                                                ...
www.3layer.com.br
  A ferramenta proposta
                                                                                ...
www.3layer.com.br
Motivação
                                                                              >> motivação

 T...
www.3layer.com.br
Motivação
                                                                                 >> motivação
...
www.3layer.com.br
Motivação
                                                                                            >>...
www.3layer.com.br
Motivação
                                                                                             >...
www.3layer.com.br
Motivação
                                                                                >> o objetivo ...
www.3layer.com.br
O objetivo da ferramenta
                                                                               ...
www.3layer.com.br
Algunas definições importantes
                                                                         ...
www.3layer.com.br
O processo
                                                                           >> comparação


1....
www.3layer.com.br
Uma pequena comparação
                                                                                 ...
www.3layer.com.br
Uma pequena comparação
                                                                                 ...
www.3layer.com.br
Uma pequena comparação
                                                                                 ...
www.3layer.com.br
Uma pequena comparação
                                                                                 ...
www.3layer.com.br
Uma pequena comparação
                                                                                 ...
www.3layer.com.br
Características gerais
                                                                              >> ...
www.3layer.com.br
Características gerais
                                                                           >> car...
www.3layer.com.br
Características gerais
                                                                                 ...
www.3layer.com.br
Características gerais
                                                                                 ...
www.3layer.com.br
O histórico
                                                                                 >> históric...
www.3layer.com.br
O histórico
                                                                                     >> slis...
www.3layer.com.br
Slistaks
                                                                                >> slistaks de ...
www.3layer.com.br
Slistaks de graça
                                                                                      ...
www.3layer.com.br
Mais slistaks de graça
                                                                                 ...
www.3layer.com.br
Ainda slistaks de graça
                                                                              >>...
www.3layer.com.br
Eu adoro slistaks
                                                                              >> agrup...
www.3layer.com.br
Agrupamentos
                                                                                          >...
www.3layer.com.br
Dependências
                                                                                           ...
www.3layer.com.br
Agentes
                                                                                            >> a...
www.3layer.com.br
Agentes
                                                                                            >> a...
www.3layer.com.br
Agentes
                                                                                                ...
www.3layer.com.br
Agentes
                                                                                    >> agentes

...
www.3layer.com.br
Agentes
                                                                                                ...
www.3layer.com.br
Agentes
                                                                                                ...
www.3layer.com.br
Agentes
                                                                                                ...
www.3layer.com.br
Agentes
                                                                                            >> l...
www.3layer.com.br
Layout
                                                                                     >> layout

 ...
www.3layer.com.br
Layout
                                                                                                 ...
www.3layer.com.br
Layout
                                                                                                 ...
www.3layer.com.br
Layout
                                                                                    >> layout


 ...
www.3layer.com.br
Layout
                                                                                   >> layout


 C...
www.3layer.com.br
Layout
                                                                               >> extensões


 Cr...
www.3layer.com.br
Extensões
                                                                                              ...
www.3layer.com.br
Extensões
                                                                                              ...
www.3layer.com.br
Extensões
                                                                                            >>...
www.3layer.com.br
Estágio atual e perspectivas
                                                                           ...
www.3layer.com.br
Fim




                                                                                        www.3lay...
Próximos SlideShares
Carregando em…5
×

Merlin Um Novo Horizonte Na Criacao Das Telas De Cadastro

3.707 visualizações

Publicada em

44 slides sobre o merlin, apresentado no FISL 2007 de Porto Alegre. O Merlin é um gerador de IU java que renderiza telas de cadastro completamente funcionais em tempo de execução. É um produto da 3Layer baseado em software livre e deve entrar no mercado em 2009.

Publicada em: Tecnologia, Turismo
2 comentários
3 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
3.707
No SlideShare
0
A partir de incorporações
0
Número de incorporações
47
Ações
Compartilhamentos
0
Downloads
53
Comentários
2
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Merlin Um Novo Horizonte Na Criacao Das Telas De Cadastro

  1. 1. www.3layer.com.br www.3layer.com.br Merlin Um Novo Horizonte na Criação das Telas de Cadastro
  2. 2. www.3layer.com.br Sumário >> panorama geral Cenário A proposta Comparações Características e Funcionalidades O presente e o futuro EOF Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 2 de 44
  3. 3. www.3layer.com.br Sobre o autor Marcelo Mrack, mmrack@gmail.com 29 anos, 8 em TI, 6 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 Projetista na CWI Software Consultor e instrutor Hibernate, Java EE Especialidades: IHC, Patterns, geradores, PU Ágil e UML Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 3 de 44
  4. 4. www.3layer.com.br Panorama geral >> a construção da IU hoje Quanto custa construir um sistema Custo de construção Sistema completo 100% 1 Interface do usuário 50% 1 TC 30% 2 TC elementares 18% 2 Referências 1 Meyers, Brad – User Interface Software Tools (1994,2002) 2 Pesquisas próprias (2005,2006) Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 4 de 44
  5. 5. www.3layer.com.br A construção da IU hoje >> a ferramenta proposta O cenário atual As diversas formas de construir interface de usuário e os problemas em comum Abordagens Problemas recorrentes Escrita de código-fonte Tempo elevado de construção Uso de ferramentas WYSIWYG1 Quanto custa criar um template? Uso de assistentes de criação Demora nas alterações Como refatorar classes já geradas? Geração baseada em modelos E se o código já foi alterado? Templates Falta de reuso MDA 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? 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. Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 5 de 44
  6. 6. www.3layer.com.br A ferramenta proposta >> motivação 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 class Cliente { new JFrame.add( String codigo; CAFE Merlin.createIhc(Pessoa.class) String nome; ).setVisible(true); } Tempo de projeto Tempo de execução Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 6 de 44
  7. 7. www.3layer.com.br Motivação >> motivação TC são funções do modelo de dados A dependência da TC em relação ao modelo de dados Modelo de classes Tela de Cadastro consistência, aparência, validação, organização, customizações, etc. Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 7 de 44
  8. 8. www.3layer.com.br Motivação >> motivação Regras clássicas Classe Tela Atributo Controle Relacionamento Link Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 8 de 44
  9. 9. www.3layer.com.br Motivação >> motivação Regras clássicas Implementando as regras clássicas Classe Tela A classe de dados Atributo Controle public class Cliente { 1 String nome; Relacionamento Link Cidade naturalidade; boolean ativo; } O cadastro gerado Cadastro de Clientes 1 Nome Naturalidade Ativo Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 9 de 44
  10. 10. www.3layer.com.br Motivação >> motivação Regras clássicas Implementando as regras clássicas Classe Tela A classe de dados Atributo Controle public class Cliente { 2 String nome; Relacionamento Link Cidade naturalidade; boolean ativo; } O cadastro gerado Cadastro de Clientes Nome 2 Naturalidade Ativo Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 10 de 44
  11. 11. www.3layer.com.br Motivação >> o objetivo da ferramenta Regras clássicas Implementando as regras clássicas Classe Tela A classe de dados Atributo Controle public class Cliente { String nome; Relacionamento Link Cidade naturalidade; 3 boolean ativo; } O cadastro gerado Cadastro de Clientes Nome Naturalidade Ativo 3 Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 11 de 44
  12. 12. www.3layer.com.br O objetivo da ferramenta >> algumas definições Gerar TCs elementares com o menor esforço possível Um exemplo de interface elementar a ser gerada O código essencial new JFrame().add( Merlin.createIhc(Usuario.class) ).setVisible(true); Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 12 de 44
  13. 13. www.3layer.com.br Algunas definições importantes >> o processo 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 13 de 44
  14. 14. www.3layer.com.br O processo >> comparação 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 14 de 44
  15. 15. www.3layer.com.br Uma pequena comparação >> comparação A mesma entrada e as diferentes saídas... Uma classe de dados para teste ... ... ou em notação UML public class Usuario { long codigo; String nome; String observacoes; String logradouro; int numero; Cidade cidade; String complemento; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 15 de 44
  16. 16. www.3layer.com.br Uma pequena comparação >> 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) usuario Cadastro de Usuário Dicas Dicas codigo O campo nome é obrigatório. O campo logradouro é obrigatório nome O campo número é obrigatório cidade Nome logradouro Rua São Sepé Endereço numero 256 Cidade complemento Logradouro Rua São Sepé observacoes Número 256 Complemento Cancelar Salvar Observações Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 16 de 44
  17. 17. www.3layer.com.br Uma pequena comparação >> 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) usuario Cadastro de Usuário Dicas Dicas codigo O campo nome é obrigatório. O campo logradouro é obrigatório nome O campo número é obrigatório cidade Nome logradouro Rua São Sepé Endereço numero 256 Cidade complemento Logradouro Rua São Sepé observacoes Número 256 Complemento Cancelar Salvar Observações Porque Observações é uma caixa de texto de múltiplas linhas? Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 17 de 44
  18. 18. www.3layer.com.br Uma pequena comparação >> 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) usuario Cadastro de Usuário Dicas Dicas codigo O campo nome é obrigatório. O campo logradouro é obrigatório nome O campo número é obrigatório cidade Nome logradouro Rua São Sepé Endereço numero 256 Cidade complemento Logradouro Rua São Sepé observacoes Número 256 Complemento Cancelar Salvar Observações Porque é Observações e não Observacoes? Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 18 de 44
  19. 19. www.3layer.com.br Uma pequena comparação >> características gerais A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a) Merlin (b) usuario Cadastro de Usuário Dicas Dicas codigo O campo nome é obrigatório. O campo logradouro é obrigatório nome O campo número é obrigatório cidade Nome logradouro Rua São Sepé Endereço numero 256 Cidade complemento Logradouro Rua São Sepé observacoes Número 256 Complemento Cancelar Salvar Observações Qual é o campo da cidade exibido na caixa de seleção? Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 19 de 44
  20. 20. www.3layer.com.br Características gerais >> 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 20 de 44
  21. 21. www.3layer.com.br Características gerais >> 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 21 de 44
  22. 22. www.3layer.com.br Características gerais >> 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 O custo dos geradores tradicionais Reuso de histórico Custo S1 S2 S3 Sn Tempo Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 22 de 44
  23. 23. www.3layer.com.br Características gerais >> histórico 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 O custo do Merlin Reuso de histórico Custo S1 S2 S3 Sn Tempo Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 23 de 44
  24. 24. www.3layer.com.br O histórico >> 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 Root LIBs classes C1 S1 classes C2 S2 classes Cn Sn classes Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 24 de 44
  25. 25. www.3layer.com.br O histórico >> slistaks 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 Root LIBs classes C1 S1 classes C2 S2 classes Histórico Cn Sn classes Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 25 de 44
  26. 26. www.3layer.com.br Slistaks >> slistaks de graça 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 110 status 12 codigo 110 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 26 de 44
  27. 27. www.3layer.com.br Slistaks de graça >> mais 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 O termo nome é mais significativo, logo ele é usado na caixa de seleção codigo : 148 milhões Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 27 de 44
  28. 28. www.3layer.com.br Mais slistaks de graça >> ainda 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 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 Cadastro slide 28 de 44
  29. 29. www.3layer.com.br Ainda slistaks de graça >> eu adoro slistaks 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 29 de 44
  30. 30. www.3layer.com.br Eu adoro slistaks >> agrupamentos Corretores ortográficos Para gerar labels observacao = observação Utilizando corretores ortográficos disponíveis no próprio ambiente Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 30 de 44
  31. 31. www.3layer.com.br Agrupamentos >> dependências Agrupando controles nas telas Requisito Os campos Cidade, Rua e Número devem ser exibidos em conjunto Criando um agrupamento simples A tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 @Group(caption=“Endereço”,fiel Dicas 2 ds=“cidade,rua,numero”) Nome 3 class Cliente { Endereço 4 String nome; Cidade 5 Cidade cidade; Rua 6 String rua; Número 7 String numero; 8 } Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 31 de 44
  32. 32. www.3layer.com.br Dependências >> agentes Vinculando controles nas telas Requisito Se o cliente possuir cheque especial, habilitar limite de crédito Criando dependências simples A tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 class Cliente { Dicas 2 String nome; Nome 3 @Dependence(“limite”) Possui cheque 4 boolean possuiCheque; Limite 5 double limite; Cancelar Salvar 6 } 7 8 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 32 de 44
  33. 33. www.3layer.com.br Agentes >> 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 O conceito de agentes Execução de Scripts Eventos Controle Scripts de tela ? Regras de negócio Propriedades Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 33 de 44
  34. 34. www.3layer.com.br Agentes >> 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 O conceito de agentes Execução de Scripts Eventos Controle Scripts de Agentes tela Regras de negócio Propriedades Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 34 de 44
  35. 35. www.3layer.com.br Agentes >> 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 tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 class Cliente { Dicas 2 String nome; Nome 3 @Agent( Salário 4 event={“focusLost”}, Cartão de crédito 5 action={“habilitarCartao”}) Cancelar Salvar 6 float salario; 7 boolean cartaoCredito; 8 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 35 de 44
  36. 36. www.3layer.com.br Agentes >> 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 1 public class AlgumasRegras { 2 public void habilitarCartao() { 3 JTextField salario = (JTextField) 4 Merlin.getControle(“cliente.salario”); 5 //processa a regra de negócio... 6 JCheckBox cartao = (JCheckBox) 7 Merlin.getControle(“cliente.cartaoCredito”); 8 cartao.setEnabled(!debitos); 9 } 10 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 36 de 44
  37. 37. www.3layer.com.br Agentes >> 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 tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 class Cliente { Dicas 2 String nome; Nome 3 @Async @Agent( Salário 4 event={“focusLost”}, Cartão de crédito 5 action={“habilitarCartao”}) Cancelar Salvar 6 float salario; 7 boolean cartaoCredito; 8 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 37 de 44
  38. 38. www.3layer.com.br Agentes >> 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 tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 class Cliente { Dicas 2 @Agent( Nome 3 property={“border=BorderFac Salário tory.createLineBorder(Color 4 .green,2)”}) Cartão de crédito 5 String nome; Cancelar Salvar 6 float salario; 7 boolean cartaoCredito; 8 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 38 de 44
  39. 39. www.3layer.com.br Agentes >> 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 tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 class Cliente { Dicas 2 String nome; Nome 3 @Agent( Salário script={“/scripts/calc.js”}) 4 float salario; Limite de crédito 5 float limiteCredito; Cancelar Salvar 6 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 39 de 44
  40. 40. www.3layer.com.br Agentes >> layout 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 /scripts/calc.js 1 var salario = new Float(this.caller.getText()); 2 3 var limite = 4 Merlin.getControle(“cliente.limiteCredito”); 5 6 limite.setText(salario * 0.3); Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 40 de 44
  41. 41. www.3layer.com.br Layout >> 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 41 de 44
  42. 42. www.3layer.com.br Layout >> layout Alterando o layout via anotações Modificando algumas coisas Redefinindo a ordem de controles e a posição de labels na tela A tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 class Cliente { Salário 2 @Order(after=“observacoes”) Observações 3 String nome; Observações 5 4 float salario; 5 @Caption(pos=Caption.TOP_LEFT) 2 Nome 6 String observacoes; 7 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 42 de 44
  43. 43. www.3layer.com.br Layout >> 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 tela A classe de dados Cadastro de Clientede Cliente Cadastro 1 @Caption(pos=Caption.TOP_LEFT) Salário 2 class Cliente { Observações 3 @Order(after=“observacoes”) 4 String nome; 5 float salario; Nome 6 String observacoes; 7 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 43 de 44
  44. 44. www.3layer.com.br Layout >> 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 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 44 de 44
  45. 45. www.3layer.com.br Layout >> 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 TemplateMaluco extends JPanel Cadastro de Cliente salario lblSalario lblObservacoes observacoes lblNome nome Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 45 de 44
  46. 46. www.3layer.com.br Layout >> extensões 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 Cadastro de Clientede Cliente Cadastro Salário Observações Nome Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 46 de 44
  47. 47. www.3layer.com.br Extensões >> extensões Modificando os controles de tela gerados Uma interface padrão A classe de dados A tela gerada 1 class Cliente { Cadastro de Cliente Cliente Cadastro de Dicas 2 String nome; Nome 3 Cidade naturalidade Naturalidade 4 } Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 47 de 44
  48. 48. www.3layer.com.br Extensões >> extensões Modificando os controles de tela gerados Uma interface com controle customizado A classe de dados A tela gerada 1 class Cliente { Cadastro de Clientede Cliente Cadastro Dicas 2 String nome; Nome 3 @RenderAs(Lookup.class) Naturalidade 4 Cidade naturalidade 5 } Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 48 de 44
  49. 49. www.3layer.com.br Extensões >> estágio atual e perspectivas Modificando os controles de tela gerados Uma interface com controle customizado A classe de dados A tela gerada 1 class Cliente { Cadastro de Clientede Cliente Cadastro Dicas 2 String nome; Nome 3 @RenderAs(Lookup.class) Naturalidade 4 Cidade naturalidade 5 } Cancelar Salvar Criando o controle customizado 1 class Lookup extends JPanel 2 implements IRenderer { 3 //metodos para binding do controle 4 } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 49 de 44
  50. 50. www.3layer.com.br Estágio atual e perspectivas >> EOF 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 Para 2008 Início: Beta release em Swing Final: Beta release em JSF 2009 em diante Gerência de realimentação Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 50 de 44
  51. 51. www.3layer.com.br Fim www.3layer.com.br Conteúdo http://merlin.dev.java.net http://merlin.3layer.com.br http://treelayer.dev.java.net Contato http://groups.google.com/group/treelayer-merlin Histórias http://telasdecadastro.blogspot.com Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 51 de 44

×