Implementando LWUIT para TV Digital (Ginga-J) Bruno Ghisi Bruno Herrera Slide 1
Objetivo <ul><li>Mostrar os testes realizados e um estudo de caso sobre a experiência de implementar o LWUIT para Java DTV...
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
Ginga
Ginga-J
Java DTV
LWUIT
 
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
LWUIT (Ginga-J) <ul><ul><li>Inspirado no LWUIT celular (Java ME/MIDP) </li></ul></ul><ul><ul><ul><li>Biblioteca X Especifi...
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
Implementando LWUIT Porting Reuso Linguagem Velocidade Dependência AWT JVM Ciclo de pintura, eventos, etc Java Maior overh...
Implementando LWUIT Porting Reuso Linguagem Velocidade Dependência AWT JVM Ciclo de pintura, eventos, etc Java Maior overh...
Especificação Java DTV/LWUIT <ul><ul><li>Falta clareza </li></ul></ul><ul><li>  </li></ul><ul><li>Component - public void ...
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Ciclo de pintura AWT <ul><ul><li>Single Threaded (EDT) </li></ul></ul><ul><ul><ul><li>Chamadas serializadas; </li></ul></u...
Ciclo de pintura AWT
Ciclo de pintura AWT
Ciclo de pintura AWT
Ciclo de pintura AWT
Ciclo de pintura LWUIT <ul><ul><li>Ciclo de pintura muito parecido com AWT </li></ul></ul><ul><ul><li>Single Threaded (EDT...
Ciclo de pintura LWUIT
Ciclo de pintura LWUIT
Ciclo de pintura LWUIT
Ciclo de pintura LWUIT
Ciclo de pintura LWUIT
Ciclo de pintura LWUIT
AWTDelegateComponent <ul><ul><li>Componentes LWUIT não são compatíveis com AWT como as do Swing </li></ul></ul><ul><ul><ul...
AWTDelegateComponent <ul><ul><li>Métodos Internal (ex: paintInternal(), setSizeInternal())   </li></ul></ul><ul><ul><ul><l...
Ciclo de pintura LWUIT/AWT
Integrando Ciclo de Pintura com AWT <ul><ul><li>z-order </li></ul></ul><ul><li>  </li></ul>
Integrando Ciclo de Pintura com AWT <ul><ul><li>Translate (coordenadas transladadas)  </li></ul></ul>
Integrando Ciclo de Pintura com AWT <ul><ul><li>Reuso AWT Font  </li></ul></ul><ul><ul><ul><li>For usage of LWUIT within t...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Animação <ul><ul><li>Trecho Guia Operacional &quot;Pode perder quadro&quot; </li></ul></ul><ul><ul><li>Sincronismo thread ...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Transformando eventos AWT em eventos LWUIT <ul><ul><ul><li>AWTDelegateComponent gerencia as instâncias de bridge (add/remo...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Layouts <ul><ul><li>AWT  </li></ul></ul><ul><ul><ul><li>BorderLayout  </li></ul></ul></ul><ul><ul><ul><li>FlowLayout </li>...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Plaf <ul><ul><li>Style </li></ul></ul><ul><ul><ul><li>fgColor, bgColor, bgSelectionColor, fgSelectionColor, transparency, ...
Pacotes LWUIT <ul><ul><li>lwuit  </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li>...
Util <ul><ul><li>Resources </li></ul></ul><ul><ul><ul><li>Arquivo de recursos binário (.res) </li></ul></ul></ul><ul><ul><...
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
Demonstração <ul><li>LWUIT on TV:  https://javatv-developers.dev.java.net </li></ul><ul><li>Runtime - phoneME Advanced (CD...
Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </l...
Conclusão <ul><ul><li>Java DTV precisa ainda ser clarificada, hoje também não é uma JSR. </li></ul></ul><ul><ul><ul><li>Po...
Obrigado! <ul><li>Bruno Ghisi: weblogs.java.net/blog/brunogh / bcg@certi.org.br / brunogh@gmail.com </li></ul><ul><li>  </...
Upcoming SlideShare
Loading in …5
×

Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011

867 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
867
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Falar da CERTI TVD desde 2003 Parte de um estudo conduzido em cima do MW
  • Falar de quem implementa a parte de baixo e nao a parte de cima da aplicacao Qtos conhecem Ginga aqui?
  • Form dispara para quem esta dentro
  • Jar pode ser inserido no classpath Diferentes interpretacoes do Javadoc Ex: Qual é a borda default no Focus? Na lib existe uma, no Javadoc não e cada um pode fazer do seu jeito Nome dtv a mais Effects - mirror, espelhamento Ex: Formato de arquivo de Resource é diferente **Rodar aplicação LWUIT 4 TV  
  • Quando se implementa uma especificação, deve se tomar cuidado para seguir o Javadoc. Ou seja, não podem haver meotodos publicos que nao os disponiveis.
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Form dispara para quem esta dentro
  • Não extende AWT. Swing tem JLabel que extende de java.awt.Label, LWUIt tem Label que não estende de ngm Pintar fundo, pintar borda, etc, etc
  • Não extende AWT. Swing tem JLabel que extende de java.awt.Label, LWUIt tem Label que não estende de ngm Pintar fundo, pintar borda, etc, etc
  • Form dispara para quem esta dentro
  • Grid Layout deu pau!
  • Permite instalar temas Customizar estilos específicos
  • Pode customizar temas )por Componente) L10N Tipo CSS   Tem um editor visual do LWUIT chamado ResourceEditor
  • Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011

    1. 1. Implementando LWUIT para TV Digital (Ginga-J) Bruno Ghisi Bruno Herrera Slide 1
    2. 2. Objetivo <ul><li>Mostrar os testes realizados e um estudo de caso sobre a experiência de implementar o LWUIT para Java DTV.  </li></ul><ul><li>  </li></ul><ul><li>Profissionais interessados em TV Digital, bibliotecas gráficas e design patterns.  </li></ul>
    3. 3. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    4. 4. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    5. 5. Ginga
    6. 6. Ginga-J
    7. 7. Java DTV
    8. 8. LWUIT
    9. 10. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    10. 11. LWUIT (Ginga-J) <ul><ul><li>Inspirado no LWUIT celular (Java ME/MIDP) </li></ul></ul><ul><ul><ul><li>Biblioteca X Especificação </li></ul></ul></ul><ul><ul><ul><li>MIDP Canvas x AWT ou implementação nativa </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Não é compatível  </li></ul></ul><ul><ul><ul><li>com.sun. dtv .lwuit </li></ul></ul></ul><ul><ul><ul><li>Pacotes/Classes/Métodos foram removidos e adicionados </li></ul></ul></ul>
    11. 12. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    12. 13. Implementando LWUIT Porting Reuso Linguagem Velocidade Dependência AWT JVM Ciclo de pintura, eventos, etc Java Maior overhead Incluso na stack Ginga-J (CDC/FP/PBP) Nativo Dependência da Plataforma Baixo C/C++ bind Menor overhead Toolkit gráfico da plataforma (DirectFB, qt, Nano-X, etc)
    13. 14. Implementando LWUIT Porting Reuso Linguagem Velocidade Dependência AWT JVM Ciclo de pintura, eventos, etc Java Maior overhead Incluso na stack Ginga-J (CDC/FP/PBP) Nativo Dependência da Plataforma Baixo C/C++ bind Menor overhead Toolkit gráfico da plataforma (DirectFB, qt, Nano-X, etc)
    14. 15. Especificação Java DTV/LWUIT <ul><ul><li>Falta clareza </li></ul></ul><ul><li>  </li></ul><ul><li>Component - public void setUIID(String uiid) - Sets unique identifier for a component, as it is retrieved using getUIID.  </li></ul><ul><li>  </li></ul><ul><li>DefaultLookAndFeel - public void drawLabel(Graphics g, Label l) - Invoked for drawing a label widget.  </li></ul><ul><li>... </li></ul><ul><ul><li>Ainda não existe uma implementação de referência concluída e nem TCK (Technology Compatibility Kit) </li></ul></ul><ul><li>Inúmeras decisões de projeto baseadas no LWUIT celular e bom senso! </li></ul>
    15. 16. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    16. 17. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    17. 18. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    18. 19. Ciclo de pintura AWT <ul><ul><li>Single Threaded (EDT) </li></ul></ul><ul><ul><ul><li>Chamadas serializadas; </li></ul></ul></ul><ul><ul><ul><li>Evita concorrencia na pintura;  </li></ul></ul></ul><ul><ul><ul><li>paint() é feito via &quot;callbacks&quot;; </li></ul></ul></ul><ul><ul><li>System Triggered; </li></ul></ul><ul><ul><ul><li>Tamanhno; </li></ul></ul></ul><ul><ul><ul><li>Posição; </li></ul></ul></ul><ul><ul><li>Application Trigerred; </li></ul></ul><ul><ul><ul><li>repaint(); </li></ul></ul></ul><ul><ul><ul><ul><li>discarte de eventos duplicados; </li></ul></ul></ul></ul>
    19. 20. Ciclo de pintura AWT
    20. 21. Ciclo de pintura AWT
    21. 22. Ciclo de pintura AWT
    22. 23. Ciclo de pintura AWT
    23. 24. Ciclo de pintura LWUIT <ul><ul><li>Ciclo de pintura muito parecido com AWT </li></ul></ul><ul><ul><li>Single Threaded (EDT) </li></ul></ul><ul><ul><ul><li>Chamadas serializadas; </li></ul></ul></ul><ul><ul><ul><li>Evita concorrencia na pintura/acesso ao Graphics;  </li></ul></ul></ul><ul><ul><ul><li>paint() é feito via &quot;callbacks&quot;; </li></ul></ul></ul><ul><ul><li>Limpa o background do componente antes de pintar; </li></ul></ul><ul><ul><li>Translada o Graphics para cooderdenadas do container pai; </li></ul></ul>
    24. 25. Ciclo de pintura LWUIT
    25. 26. Ciclo de pintura LWUIT
    26. 27. Ciclo de pintura LWUIT
    27. 28. Ciclo de pintura LWUIT
    28. 29. Ciclo de pintura LWUIT
    29. 30. Ciclo de pintura LWUIT
    30. 31. AWTDelegateComponent <ul><ul><li>Componentes LWUIT não são compatíveis com AWT como as do Swing </li></ul></ul><ul><ul><ul><li>Extende java.awt.Container </li></ul></ul></ul><ul><ul><li>Componentes LWUIT contém um AWTDelegateComponent </li></ul></ul><ul><li>  </li></ul>
    31. 32. AWTDelegateComponent <ul><ul><li>Métodos Internal (ex: paintInternal(), setSizeInternal())  </li></ul></ul><ul><ul><ul><li>Internamente é utilizado o xxxInternal() para evitar sobrescrita no Componente LWUIT </li></ul></ul></ul><ul><ul><ul><li>Se o programador sobrescrever, é por conta e risco </li></ul></ul></ul>
    32. 33. Ciclo de pintura LWUIT/AWT
    33. 34. Integrando Ciclo de Pintura com AWT <ul><ul><li>z-order </li></ul></ul><ul><li>  </li></ul>
    34. 35. Integrando Ciclo de Pintura com AWT <ul><ul><li>Translate (coordenadas transladadas) </li></ul></ul>
    35. 36. Integrando Ciclo de Pintura com AWT <ul><ul><li>Reuso AWT Font  </li></ul></ul><ul><ul><ul><li>For usage of LWUIT within the DTV specification, a Font object always wraps an instance of java.awt.Font. </li></ul></ul></ul>
    36. 37. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    37. 38. Animação <ul><ul><li>Trecho Guia Operacional &quot;Pode perder quadro&quot; </li></ul></ul><ul><ul><li>Sincronismo thread EDT e Animação </li></ul></ul><ul><ul><li>Animation x Animated </li></ul></ul><ul><ul><ul><li>Todos componentes herdam das duas interfaces; </li></ul></ul></ul><ul><ul><ul><li>Apenas com.sun.dtv.lwuit.Component podem ser adicionados; </li></ul></ul></ul>
    38. 39. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    39. 40. Transformando eventos AWT em eventos LWUIT <ul><ul><ul><li>AWTDelegateComponent gerencia as instâncias de bridge (add/remove); </li></ul></ul></ul><ul><ul><ul><li>Bridge faz a cola com o recebimento do evento AWT e delega para o LWUIT; </li></ul></ul></ul>
    40. 41. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom: Dimension, Point, Rectangle </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    41. 42. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    42. 43. Layouts <ul><ul><li>AWT </li></ul></ul><ul><ul><ul><li>BorderLayout  </li></ul></ul></ul><ul><ul><ul><li>FlowLayout </li></ul></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><ul><li>Implementar </li></ul></ul><ul><ul><ul><li>BoxLayout      </li></ul></ul></ul><ul><ul><ul><li>GroupLayout  </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>CoordinateLayout </li></ul></ul></ul><ul><ul><ul><li>GridLayout      </li></ul></ul></ul>new GridLayout(7, 2);
    43. 44. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    44. 45. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    45. 46. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    46. 47. Plaf <ul><ul><li>Style </li></ul></ul><ul><ul><ul><li>fgColor, bgColor, bgSelectionColor, fgSelectionColor, transparency, margin, padding, image, scaleImage, border </li></ul></ul></ul><ul><ul><li>UIManager </li></ul></ul><ul><ul><ul><li>Determina o estilo </li></ul></ul></ul><ul><ul><ul><li>Instala temas  </li></ul></ul></ul><ul><ul><li>Look and Feel </li></ul></ul>
    47. 48. Pacotes LWUIT <ul><ul><li>lwuit </li></ul></ul><ul><ul><li>lwuit.animations </li></ul></ul><ul><ul><li>lwuit.events </li></ul></ul><ul><ul><li>lwuit.geom </li></ul></ul><ul><ul><li>lwuit.layouts </li></ul></ul><ul><ul><li>lwuit.list </li></ul></ul><ul><ul><li>lwuit.painter </li></ul></ul><ul><ul><li>lwuit.plaf </li></ul></ul><ul><ul><li>lwuit.util </li></ul></ul>
    48. 49. Util <ul><ul><li>Resources </li></ul></ul><ul><ul><ul><li>Arquivo de recursos binário (.res) </li></ul></ul></ul><ul><ul><ul><ul><li>Borda </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cores e imagens </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Font </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Margin e padding  </li></ul></ul></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>Diferença no protocolo </li></ul></ul></ul><ul><ul><ul><ul><li>Label.sel#bgColor, Button.press#fgColor, etc </li></ul></ul></ul></ul><ul><ul><ul><ul><li>constante que representa determinado tipo de borda  </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>BORDER_TYPE_LINE = 1 e 2 </li></ul></ul></ul></ul></ul>
    49. 50. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    50. 51. Demonstração <ul><li>LWUIT on TV: https://javatv-developers.dev.java.net </li></ul><ul><li>Runtime - phoneME Advanced (CDC/FP/PBP): https://phoneme.dev.java.net </li></ul><ul><li>** Implementação no CLASSPATH </li></ul>
    51. 52. Agenda <ul><ul><li>Ginga </li></ul></ul><ul><ul><li>LWUIT </li></ul></ul><ul><ul><li>Questões envolvendo implementação </li></ul></ul><ul><ul><li>Estudo de caso: Implementando LWUIT em AWT </li></ul></ul><ul><ul><li>Demonstração </li></ul></ul><ul><ul><li>Conclusão </li></ul></ul>
    52. 53. Conclusão <ul><ul><li>Java DTV precisa ainda ser clarificada, hoje também não é uma JSR. </li></ul></ul><ul><ul><ul><li>Pontos obscuros podem trazer comportamentos não esperados em diversas implementações do LWUIT </li></ul></ul></ul><ul><ul><li>A abordagem de reuso da AWT trouxe agilidade no desenvolvimento </li></ul></ul><ul><ul><ul><li>Coisas visíveis rapidamente </li></ul></ul></ul><ul><ul><li>&quot;Good Painting Code Is the Key to App Performance&quot; </li></ul></ul><ul><ul><li>A falta de ferramentas e material público traz atrasos na evolução da comunidade Ginga-J </li></ul></ul>
    53. 54. Obrigado! <ul><li>Bruno Ghisi: weblogs.java.net/blog/brunogh / bcg@certi.org.br / brunogh@gmail.com </li></ul><ul><li>  </li></ul><ul><li>Bruno Herrera: bhm@certi.org.br / bruherrera@gmail.com </li></ul><ul><li>  </li></ul><ul><li>www.certi.org.br/ccd </li></ul><ul><li>Projetos Open Source CERTI: </li></ul><ul><li>certiopensource.googlecode.com </li></ul><ul><ul><li>www.forumsbtvd.org.br </li></ul></ul><ul><ul><li>Java DTV: www.forumsbtvd.org.br/materias.asp?id=200 </li></ul></ul><ul><ul><li>http://java.sun.com/products/jfc/tsc/articles/painting/ </li></ul></ul><ul><ul><li>https://lwuit.dev.java.net/files/documents/8797/95067/file_95067.dat/LWUIT%20Developer_Guide.pdf </li></ul></ul>

    ×