• Nenhum resultado encontrado

Arquitetura de APIs Gráficas do JavaDTV LWUIT e DTV-UI

N/A
N/A
Protected

Academic year: 2021

Share "Arquitetura de APIs Gráficas do JavaDTV LWUIT e DTV-UI"

Copied!
65
0
0

Texto

(1)

Erisvaldo Gadelha Saraiva Júnior

Arquitetura de APIs Gráficas do JavaDTV

LWUIT e DTV-UI

Erisvaldo Gadelha Saraiva Júnior Laboratório de Aplicações de Vídeo Digital Departamento de Informática - UFPB Contato: erisvaldojunior@gmail.com

(2)

Or

ganiz

e

wi

th S

ect

io

ns

Objetivo

Expor a arquitetura de APIs Gráficas do JavaDTV: LWUIT e DTV-UI.

Imagens de telas confeccionadas com o LWUIT rodando em dispositivos móveis.

(3)

Roteiro

de Apresentação

Arquitetura de APIs Gráficas do JavaDTV: LWUIT e DTV-UI

APIs Gráficas do JavaDTV A API Gráfica LWUIT A API Gráfica DTV-UI

(4)

APIs Gráficas do

JavaDTV

(5)
(6)
(7)

Ar

quit

etur

a

do

Ging

a-J

Cenário A do Ginga-J

Inicialmente, pensou-se em adotar o GEM, especificação européia composta pelas APIs JavaTV, DAVIC, HAVi e DVB.

(8)

Ar

quit

etur

a

do

Ging

a-J

Cenário B do Ginga-J

Posteriormente, substituiu-se o GEM pelo JavaDTV, especificação da Sun (em parceria com o Fórum brasileiro de TV Digital) composta pelas APIs JavaTV, Transport, LWUIT e App.

(9)

Ar

quit

etur

a

do

Ging

a-J

APIs do JavaDTV

(10)

Ar

quit

etur

a

do

Ging

a-J

Pacotes do JavaDTV 1.2.1

(11)

Ar

quit

etur

a

do

Ging

a-J

Extensões do Ginga-J Os pacotes do JavaDTV

permitem acesso genérico aos planos (exceto o plano de subtítulos) oferecidos pela plataforma para exibir conteúdo.

(12)

A API Gráfica

LWUIT

(13)
(14)

Introdução ao

LWUIT

LWUIT é uma biblioteca

baseada no Swing que

permite criar GUIs bastante atraentes em dispositivos que

rodam as seguintes

plataformas: JavaME (CLDC 1.1, MIDP 2.0 / CDC, FP e PBP) ou JavaSE.

LWUIT oferece, entre outros recursos: suporte a Touch Screen, animações, botões, fontes, transições de telas, temas, layouts, abas, caixas de diálogo, integração 3D, etc.

(15)

Introdução ao

LWUIT

Cada componente visual do LWUIT possui uma série de

propriedades, tais como:

focusable, navigable e able to receive user inputs.

Além disso, cada

componente visual do

LWUIT está associado a dois

componentes: um

relacionado a presentation

(look) e outro relacionado a behavior (feel). Dessa forma,

separa-se funcionalidade de visão.

(16)

LWUIT tem uma clara

separação entre model,

view e controller;

Por ser inspirado no Swing, é fácil de aprender e adotar;

LWUIT foi construído “do

zero” e não depende do AWT.

No LWUIT, tudo é customizável e extensível. Caso não exista um recurso ou componente, pode-se criá-lo e facilmente integrá-lo ao LWUIT.

(17)
(18)

Container é um Component

responsável por armazenar vários componentes através do método

addComponent(…).

Cada Container tem o seu próprio layout.

(19)

Form é um Container que serve como

raiz para a interface do usuário.

O Form é composto por Title,

ContentPane e MenuBar.

(20)

ALARM; CONFIRMATION; ERROR; INFO; WARNING.

Dialog é um Form que ocupa

uma parte da tela; Dialog é, também, um “Top Component”;

Um Dialog pode ser modal ou

modeless;

Possui os métodos show() e

dispose();

Pode ser criado de duas formas: // Fábrica (método estático) Dialog.show(…);

// Criar um novo objeto

Dialog d = new Dialog(); d.show();

Tipos de Dialog

(21)
(22)
(23)

TabbedPane é um container de abas

com títulos. Imagens também pode ser usadas como abas.

As abas podem ser dispostas em qualquer lado: cabeçalho, rodapé, esquerda ou direita.

Passa-se um componente para o método addTab() e especifica-se o título da aba ou imagem.

(24)
(25)

Um Label pode conter: • Texto; • Imagem; • Texto e Imagem; • Alinhamento Horizontal; • Alinhamento Vertical.

Label

(26)

Características de um Button:

• Herda de Label;

• Pode receber foco (focusable); • Usa-se a tecla de seleção ou

ponteiro para clicá-lo;

• Usa-se um ActionListener para descobrir quando o botão foi clicado.

(27)

Características de um RadioButton:

• Herda de Button;

• Possui um estado booleano; • Não faz muito por si só, deve

ser agrupado com

ButtonGroup.

(28)

Características de um CheckBox:

• Herda de Button;

• Possui um estado booleano; • Verifica-se a seleção do

mesmo através do método

isSelected().

(29)

Características de um TextArea:

• Especifica linhas e colunas; • Mostra o texto na tela;

• TextArea de múltiplas linhas podem aumentar de tamanho caso seja necessário;

• Constraints: ANY, DECIMAL, EMAILADDR,

INITIAL_CAPS_SENTENCE, INITIAL_CAPS_WORD,

NON_PREDICTIVE, NUMERIC, PASSWORD, PHONENUMBER, SENSITIVE, UNEDITABLE, URL.

TextArea

(30)

Características de um TextField:

• Herda de TextArea;

• Representa um campo de texto (uma única linha).

TextField

(31)

• Crucial para aplicações interativas;

• Modelo de separação MVC

(ListModel, ListCellRenderer e

ListEvents, respectivamente);

• Repleto de modos úteis: • FIXED_NONE; • FIXED_NONE_CYCLIC; • FIXED_NONE_ONE_ELEM_ MARGIN_FROM_EDGE; • FIXED_LEAD; • FIXED_TRAIL; • FIXED_CENTER.

List

(32)

Representa a estrutura de dados de um

List.

• Crie a sua própria classe de modelo implementando a interface ListModel;

• Lance eventos de mudança de dados para a visão;

• O modelo permite que a lista

mostre uma quantidade

ilimitada de dados;

• List tem um modelo padrão, o

DefaultModel.

(33)

Interface responsável por exibir os dados do modelo.

• List tem um modelo padrão, o

DefaultListCellRenderer.

(34)

Quanto aos EVENTOS de List, podem ser de três tipos: • Action Events; • Selection Events; • Data Events.

ListEvents

(35)

Características de um ComboBox:

• É um tipo de List • Tem um model;

• Pode usar um cell renderer

customizado.

• Mostra a seleção atual; • Abre uma lista de opções.

ComboBox

(36)
(37)
(38)

1. Coleção de atributos de estilo; 2. Declaros no arquivo .RES:

1. Temas; 2. Fontes; 3. Imagens; 4. Animações;

5. Localização (L10N).

(39)
(40)
(41)

A API Gráfica

DTV-UI

(42)

Introdução a

DTV-UI

DTV-UI, representada

pelo pacote

com.sun.dtv.ui, como o

próprio nome diz, traz funcionalidades

específicas para

interfaces em TV Digital.

DTV-UI oferece acesso a

tela e configurações, dispositivos específicos de entrada do usuário e o TextLayout Manager. Além disso, suporta os diversos planos de tela do dispositivo.

(43)

Graphic Plane Support API

DTV-UI (com.sun.dtv.ui) permite acesso genérico aos planos (br.org.sbtvd.ui), oferecidos pela plataforma para exibição de conteúdo.

Cinco planos: Video,

StillPicture,

Switching Plane,

Text and Graphics Plane, Subtitle Plane.

(44)

Graphic Plane Support API

A Graphic Plane Support API define três classes adicionais para as APIs de Interface do JavaDTV: ColorCoding, StillPicture e SwitchArea.

» ColorCoding possui constantes para enumerar os possíveis modelos de

codificação para cada plano;

» StillPicture permite que imagens JPEG sejam inseridas no plano estático de

imagens;

» SwitchArea é um componente que define uma área retangular para o plano

de seleção de vídeo/imagem. Cada retângulo pode ser adicionado através do método addComponent(…) de com.sun.dtv.lwuit.Component, no qual o plano de imagens estáticas aparecerá sobre o plano de vídeo ou vice-versa, dependendo do estilo (cor) do componente (preto mostra o vídeo e branco mostra a imagem estática).

(45)
(46)
(47)
(48)
(49)
(50)
(51)

DTV-UI

provê caminhos para controlar qualquer camada da sua apresentação visual. Para cada camada, é possível obter: aspect ratio, pixel

aspect ratio, screen resolution e screen area. Suporta diferentes ratios e screen sizes, bem como alpha blending e alternância de camadas entre vídeo e

imagem.

Recomenda-se que a configuração seja obtida como um ScarceResource, sendo usado por uma única aplicação por vez.

(52)

DTV-UI

provê acesso a eventos de entradas do usuário antes deles serem processados pelo mecanismo de alto nível de tratamento de eventos do Java. Os eventos de entradas do usuário são

agrupados pelo tipo: numerical keys, arrow keys, colored keys. Essas classes definem funcionalidades para o layout dos textos e sua

renderização na tela.

(53)
(54)
(55)

DTV-UI

possui a interface TextLayoutManager e duas implementações de layout:

DefaultTextLayoutManager e

SophisticatedTextLayoutManager. Essas classes definem

funcionalidades para o layout dos textos e sua renderização na tela.

LAYOUT MANAGERS

Similar ao Swing. Seis gerenciadores de

layout são suportados

(com.sun.dtv.lwuit.layouts): • BorderLayout; • BoxLayout; • FlowLayout; • GridLayout; • CoordinateLayout; • GroupLayout.

(56)

Exemplo de uso de

(57)
(58)
(59)
(60)
(61)
(62)
(63)

Referências http://java.sun.com/javame/technology/lwuit/ http://java.sun.com/javame/technology/javatv/ http://www.forumsbtvd.org.br http://www.ginga.org.br http://javatv-developers.dev.java.net/ http://www.interactivetvweb.org/ http://gingacdn.lavid.ufpb.br/

(64)

?

Dúvidas

?

(65)

What’s Your Message?

OBRIGADO!

Referências

Documentos relacionados

Era de conhecimento de todos e as observações etnográficas dos viajantes, nas mais diversas regiões brasileiras, demonstraram largamente os cuidados e o apreço

(A) cabe à CIPA coordenar a participação dos traba- lhadores subcontratados, que atuam no estabeleci- mento, nas discussões promovidas pelo empregador para avaliar os impactos

Dentro das terapias da Medicina Chinesa foi diagnosticado Estagnação do Qi e Xue, e foi possível verificar que dentre os protocolos aplicados na paciente houve uma grande

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

Seu vampiro é um adolescente que frequenta salas de aulas, adora velocidade, não dorme em caixões, anda de dia, e, principalmente, irá amadurecer (mesmo tendo

a) Realizar entrevistas com duas empresas importadoras, sendo uma de equipamentos médico-hospitalares, para identificação de requisitos para desenvolvimento de um protótipo de

As convocações para reuniões do Comitê serão realizadas via e-mail, com antecedência de no mínimo 5 (cinco) dias da data da reunião e conforme agenda anual previamente