Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Objetivo
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
O que é o GWT ?
• Gerador de aplicações
• API
• Widgets
• Panels
Introdução
Benefícios
Ecosistema
Compilador
JRE
JSNI
Emulador
API
Utilitários
webAppCreator junitCreator i18nCreator
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Estrutura do GWT
Introdução
Pensando em MVC
• Apresentação
o Widgets / Panels
o Listeners
• Controle
o Serviço
• Modelo / Negócio
o EJB
o Spring
o Pojo ou qualquer outra framework Java.
Introdução
Componentes Visuais I
• Widgets
o Buttons, Dialogs, Label, TextBox, FileUpload, Tables,
Forms, Listbox, Popup e outros ;
Componentes Visuais II
• Container / Panel
o RootPanel, HorizontalPanel, VerticalPanel, FlowPanel,
DialogBox, FormPanel e outros ;
Eventos
...
btnEnviar.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert("Ola GWT");
}
});
...
Introdução
Compilador: o truque!
Emulador JRE
Hosted Mode
Fluxo de trabalho
Desenvolvimento Produção
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Plugin Google
para Eclipse
Configurações
do GWT
Código
no Cliente (Browser)
Código Java
no Servidor
Introdução
Módulo
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='GlobalcodeGWT'>
</module>
Introdução
Tema
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
Introdução
Entry-Point
}
Introdução
Hosted HTML
<html>
<head> … </head>
<body>
<!– javascript do projeto -->
<script language=‘javascript‘ src=‘projeto.nocache.js‘> </script >
<!-- Include a history iframe to enable full GWT history support -->
<iframe src=“javascript:’’” id=“__gwt_historyFrame"
style =“width:0;height:0;border:0” > </iframe>
</body>
</html>
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
No Servidor: Serviço
Serviço RPC
o Implementar o Serviço;
• O serviço é um Servlet.
Introdução
Serviço RPC
Introdução
Etapas da execução
View Service Clientes
Service
Widgets Async DAO
onload
new
Async
Callback
for
getClientes(callback) getClientes()
getAll()
new
Cliente
onSuccess()
grid.add(clientes)
Serviço Http
try {
Request request = builder.sendRequest(null, new RequestCallback() {
...
public void onResponseReceived(Request request, Response response) {
if (200 == response.getStatusCode()) {
// resposta finalizada
}
}
});
} catch (RequestException e) {
//não foi possivel conectar ao server
}
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Customização Estilo
Exemplo 1, css:
.sendButton {
display: block;
font-size: 16pt;
}
Java:
cliqueButton.addStyleName("sendButton"); //vinculando style por class (Button)
Exemplo 2, css:
#closeButton {
display: block;
font-size: 16pt;
}
Java:
closeButton.getElement().setId("closeButton"); //vinculando style por selector (Button)
Introdução
Internacionalização
#arquivo properties
clienteNome=Nome
clienteCpf=CPF
//Entry point
Rotulos i18n = (Rotulos) GWT.create(Rotulos.class);
Label lblNome = new Label(i18n.clienteNome());
…
Label lblCpf = new Label(i18n.clienteCpf());
…
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Extensões
o Ext GWT
http://extjs.com/examples/explorer.html#overview
o SmartClient GWT
http://www.smartclient.com/smartgwt/showcase/
o Advanced Components
http://advanced-gwt.sourceforge.net/demo/index.html
o GWT Ext
http://www.gwt-ext.com/demo/
Apresentação da Agenda
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
• Google:
• Docs
• Gmail
• Wave
Um pouco do Histórico...
Agenda
• Cenário
• O que é e o que faz o GWT?
• Estrutura do GWT
• Configuração do Aplicativo GWT
• Demonstração do Aplicativo GWT
• RPC - GWT do lado servidor
• Usando JavaScript, CSS e i18n
• Extensões do GWT
• Teste Unitário
• Quem usa GWT?
• Tendências
• Perguntas
Introdução
Tendências
• GWT 2.0
• Debug (Java) direto no navegador;
• Compilador mais rápido;
• Melhorias Binding;
• Scripts JS e CSS menores;
• Google Wave
Links
http://code.google.com/intl/pt-BR/webtoolkit
http://www.ongwt.com
http://www.gwtsite.com
http://groups.google.com/group/Google-Web-Toolkit?hl=en&pli=1
http://www.gwtapps.com/
http://wave.google.com/
http://code.google.com/intl/pt-BR/appengine/
Introdução
Perguntas