Wicket - Brincando com Objetos

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Group

    Wicket - Brincando com Objetos - Presentation Transcript

    1. Wicket Brincando com Objetos... na Web! :D www.summa-tech.com
    2. Agenda Wicket: de volta à POO Introdução Conceitos Aplicados Componentes e Dados Demonstração Aplicação Real Perguntas Fim ;) www.summa-tech.com
    3. Wicket: de volta à POO Queremos usar OO na Web! Componentes são reutilizáveis (sério!) Componentes podem ser independentes MVC em Objetos e não em “Requests” HTML e Java integrados, não amarrados www.summa-tech.com
    4. Introdução Projeto iniciado em 2004 por Jonathan Locke Evangelista Java Trabalhou na Microsoft e na JavaSoft Motivação: componentizar e manipular HTML de forma transparente com Objetos Prêmio: CCEs, NPEs e *Es quase inexplicáveis: nunca mais. Diversão www.summa-tech.com
    5. Introdução Web... www.summa-tech.com
    6. Introdução Frameworks Web: muitos e poucos www.summa-tech.com
    7. Conceitos Aplicados Gerência de Sessão automatizada Configuração Reduzida Não existe um “wicket-config.xml” :D Definição do controller no web.xml Componentes Definição Construção Customização www.summa-tech.com
    8. Conceitos Aplicados (2) Composição de páginas Painéis Bordas Herança de código HTML Suporte avançado a i18n e CSS Por página: pagina_en.html Por resource bundle: pagina_en.properties Por hierarquia www.summa-tech.com
    9. Conceitos Aplicados (3) Integração Spring Hibernate JasperReports Ajax Outros... ? É Java! Componentes Tabelas de Dados DatePicker Editor de texto Painel com abas, navegação, menu em árvore... www.summa-tech.com
    10. Conceitos Aplicados (4) Gerência de estado Sessões “type-safe” Botão Voltar Estratégia de duplo-clique Suporte a Testes Unitários JUnit Mensagens de erro e log detalhadas www.summa-tech.com
    11. Conceitos Aplicados (5) Ajax Dojo, Scriptaculous, YUI, ... Componentes Nativos/Extensões (Wicket: Core, Extensions, Stuff) Contribuição de HTML Header hierárquica JavaScript CSS URLs Amigáveis www.summa-tech.com
    12. Componentes e Dados Tudo é componente No HTML: wicket:id No Java: propriedade “id” HTML Java new Label(“foo”); <span wicket:id=\"foo”> www.summa-tech.com
    13. Componentes e Dados (2) Reutilização Painéis permitem agrupamento Componentes aninhados cep/numero rua cidade www.summa-tech.com
    14. Componentes e Dados (2) Reutilização Painéis permitem agrupamento Componentes aninhados cep/numero rua cidade www.summa-tech.com
    15. Componentes e Dados (2) Reutilização Painéis permitem agrupamento Componentes aninhados cep/numero rua cidade www.summa-tech.com
    16. Componentes e Dados (3) Reutilização Painéis permitem agrupamento Componentes aninhados Empacotar um JAR HTML, JavaScript, CSS, Imagens Classes Classpath, e pronto! Reutilize! www.summa-tech.com
    17. Componentes e Dados (4) Modelos conectam componentes Wicket aos seus POJOs Modelos são o cérebro da aplicação Label(“nome”, model) <<Pessoa>> PropertyModel +nome : String +cidade : String www.summa-tech.com
    18. Componentes e Dados (5) Modelos Avançados Modelos não-atachados Guarda apenas o id na sessão Recupera o objeto quando necessário Libera o objeto após o uso Modelos Compostos Utiliza o id do componente para recuperar os dados Ex: new Label(“pessoa.endereco.rua”, ...); www.summa-tech.com
    19. Demonstração www.summa-tech.com
    20. Demonstração www.summa-tech.com
    21. Demonstração Design da página Página <h1> <table> link (<a href>) www.summa-tech.com
    22. Demonstração Design da página Página <h1> linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    23. Demonstração Design da página Página <h1> nome fone perfil linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    24. Demonstração Marcando o HTML <html> ... <body> <h1>Recursos</h1> <table border=\"1\"> <tr> <td>Bruno Borges</td> <td>8565-7739</td> Página <td>java developer</td> <h1> </tr> </table> </body> nome fone perfil linhas (<tr>) </html> <table> link (<a href>) www.summa-tech.com
    25. Demonstração Marcando o HTML <html> ... <body> <h1>Recursos</h1> <table border=\"1\"> <tr wicket:id=\"linhas\"> <td>Bruno Borges</td> <td>8565-7739</td> <td>java developer</td> Página </tr> <h1> </table> </body> nome fone perfil </html> linhas (<tr>) link (<a href>) www.summa-tech.com
    26. Demonstração Marcando o HTML <html> ... <body> <h1>Recursos</h1> <table border=\"1\"> <tr wicket:id=\"linhas\"> <td><span wicket:id=“nome”>Bruno ... <td><span wicket:id=“fone”>8565-7739 ... <td><span wicket:id=“perfil”>java developer ... Página </tr> <h1> </table> </body> nome fone perfil </html> linhas (<tr>) link (<a href>) www.summa-tech.com
    27. Demonstração Do HTML para o Java public class RecursosPage extends WebPage { public RecursosPage() { } } Página <h1> nome fone perfil linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    28. Demonstração Do HTML para o Java public class RecursosPage extends WebPage { public RecursosPage() { add(new RecursosListView(“linhas”, recursos)); } private class RecursosListView extends ListView { private RecursosListView(String id, IModel m) { super(id, m); Página } <h1> } } nome fone perfil linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    29. Demonstração Do HTML para o Java public class RecursosPage extends WebPage { public RecursosPage() { add(new RecursosListView(“linhas”, recursos)); } private class RecursosListView extends ListView { private RecursosListView(String id, IModel m) { super(id, m); Página } <h1> protected void populateItem(ListItem item) { item.add(new Label(“nome”)); nome fone perfil item.add(new Label(“fone”)); linhas (<tr>) <table> item.add(new Label(“perfil”)); link (<a href>) } www.summa-tech.com
    30. Demonstração Sumário Criar o HTML (ou ter ele pronto) Identificar componentes Atribuir wicket:id Criar classe da página Adicionar componentes à página www.summa-tech.com
    31. Demonstração www.summa-tech.com
    32. Demonstração Adicionando o link Apagar Página <h1> apagar nome fone perfil <table> link (<a href>) www.summa-tech.com
    33. Demonstração Modificar o HTML ... <tr wicket:id=\"linhas\"> <td><span wicket:id=“nome”>Bruno Borges</span></td> <td><span wicket:id=“fone”>8565-7739 </span></td> <td><span wicket:id=“perfil”>java developer </span></td> <td><a href=“#”>apagar</a></td> </tr> ... Página <h1> nome fone perfil apagar linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    34. Demonstração Atribuir Wicket id ... <tr wicket:id=\"linhas\"> <td><span wicket:id=“nome”>Bruno Borges</span></td> <td><span wicket:id=“fone”>8565-7739 </span></td> <td><span wicket:id=“perfil”>java developer </span></td> <td><a href=“#” wicket:id=“apagar”>apagar</a></td> </tr> ... Página <h1> nome fone perfil apagar linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    35. Demonstração Adicionar o componente em Java protected void populateItem(ListItem item) { item.add(new Label(“nome”)); item.add(new Label(“fone”)); item.add(new Label(“perfil”)); item.add(new Link(“apagar”)); } Página <h1> <a wicket:id=“apagar” href=“#”>apagar</a> nome fone perfil apagar linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    36. Demonstração Adicionar o componente em Java protected void populateItem(ListItem item) { item.add(new Label(“nome”)); item.add(new Label(“fone”)); item.add(new Label(“perfil”)); item.add(new Link(“apagar”) { protected void onClick() { Recurso r = (Recurso)getParent() .getModelObject(); Página RecursosDAO.apagarRecurso(r); <h1> } }); nome fone perfil apagar } linhas (<tr>) <table> link (<a href>) www.summa-tech.com
    37. Demonstração Sumário Modificar HTML: adicionar link apagar Atribuir wicket:id ao link Adicionar componente Link ao ListItem Adicionar evento onClick ao componente Link www.summa-tech.com
    38. Demonstração www.summa-tech.com
    39. Demonstração Adicionando paginação à lista Página <h1> nome fone perfil apagar linhas (<tr>) navegacao <table> link (<a href>) www.summa-tech.com
    40. Demonstração Adicionar o componente de navegacao ao HTML … <td><span wicket:id=“perfil”>java dev</span></td> <td><a href=“#” wicket:id=“apagar”>apagar</td> </tr> <tr> <td colspan=“4”> Página <span>navegacao</span> <h1> </td> nome fone perfil apag </tr> linhas (<tr>) </table> navegacao <table> link (<a href>) www.summa-tech.com
    41. Demonstração Atribuir wicket:id … <td><span wicket:id=“perfil”>java dev</span></td> <td><a href=“#” wicket:id=“apagar”>apagar</td> </tr> <tr> <td colspan=“4”> Página <span wicket:id=“navegacao”> <h1> navegacao nome fone perfil apag </span> linhas (<tr>) </td> navegacao </tr> <table> </table> link (<a href>) www.summa-tech.com
    42. Demonstração Tornar a ListView paginável public class RecursosPage extends WebPage { public RecursosPage() { add(new RecursosListView(“linhas”, recursos)); } private class RecursosListView extends PageableListView { Página private RecursosListView(String id, IModel m) <h1> { super(id, m, 2); nome fone perfil apag linhas (<tr>) } navegacao <table> Itens por página link (<a href>) www.summa-tech.com
    43. Demonstração Adicionar componente navegação public class RecursosPage extends WebPage { public RecursosPage() { RecursosListView rlv = new RecursosListView(“linhas”, recursos); add(rlv); add(new PagingNavigator(“navegacao”, rlv)); } Página ... <h1> nome fone perfil apag linhas (<tr>) navegacao <table> link (<a href>) www.summa-tech.com
    44. Demonstração Sumário Modificar HTML: adicionar painel de navegação Atribuir wicket:id ao <span> Mudar a herança da ListView para PageableListView Adicionar componente de navegação à página www.summa-tech.com
    45. Demonstração Resumo Exemplo de 10 minutos Java e HTML puros Sem novidades para o HTML Sem configurações em XML Caso muito comum em projetos: paginação e manipulação em tabelas de dados www.summa-tech.com
    46. Perguntas Wicket realmente utiliza a sessão (HttpSession)? Wicket está sendo utilizado e é um projeto ativo? Onde encontrar maiores informações? www.summa-tech.com
    47. Fim ;) Jonathan Locke www.muppetlabs.com/~jonl/ Javapolis 2005 www.javapolis.com/confluence/display/JP05/Wicket JavaOne 2005 developers.sun.com/learning/javaoneonline/2005/web www.summa-tech.com
    48. Fim ;) Exemplos www.wicket-library.com Incubadora wicket-stuff.sourceforge.net Site Oficial www.wicket-framework.org www.summa-tech.com

    + Bruno BorgesBruno Borges, 2 years ago

    custom

    2428 views, 0 favs, 0 embeds more stats

    Apresentação sobre o Apache Wicket

    More Info

    © All Rights Reserved

    Go to text version
    • Total Views 2428
      • 2428 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 81
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as innappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel

    Categories

    Groups / Events