Esse artigo faz parte da revista Java Magazine edição 64. Clique aqui para ler todos os artigos desta edição
white; COLOR: red; FONT-FAMILY: Verdana; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left>Para o desenvolvimento de aplicações web com interfaces ricas e interativas é necessária a utilização de uma diversidade de tecnologias, como JavaScript, DHTML Ajax, etc. dificultando assim a vida do desenvolvedor, que precisa conhecer várias linguagens, trabalhar com as diferentes sintaxes e limitações de cada uma delas. O GWT-Ext permite a criação de interfaces ricas e interativas utilizando apenas a linguagem Java, propondo uma maior produtividade e oferecendo um conjunto amplo de componentes sofisticados advindos do ExtJS e a facilidade da programação para a geração desses componentes advindos do GWT. Conhecendo o GWT-Ext: A biblioteca GWT-Ext consiste na integração das tecnologias GWT e ExtJS, proporcionando uma poderosa biblioteca de widgets que provê ricos componentes de interface, tais como: grids com ordenação, paginação e filtro; árvores com suporte a drag and drop; comboboxes altamente customizáveis; tab panels; menus; tollbars; forms; entre outros. O GWT consiste em um conjunto de ferramentas open source que permitem aos desenvolvedores criarem aplicações Ajax na linguagem Java. O ExtJS, por sua vez, é uma biblioteca de JavaScripts para a criação de componentes de interface web com alta interatividade. GWT apenas, não oferece um conjunto de componentes tão amigáveis quanto os oferecidos pelo ExtJS, enquanto este necessita que o desenvolvedor conheça outra linguagem além do Java para a construção de aplicações. O GWT-Ext surge como um meio de se criar componentes tão ricos como os apresentados pelo ExtJS usando apenas linguagem Java como proposto pelo GWT. O desenvolvimento de aplicações web sempre teve como vantagem principal a independência do cliente para a interação com o sistema. Máquinas clientes com os mais diversos tipos de configurações são beneficiadas pelo processamento no servidor, servindo apenas como ponto de interação com o usuário final das aplicações. À medida que esse tipo de desenvolvimento foi se difundindo e novas tecnologias foram surgindo, usuários e desenvolvedores passaram a ficar mais exigentes e seletivos no desejo de criar interfaces mais ricas. Porém, não era possível construir tais interfaces utilizando apenas a linguagem de programação empregada no sistema, ou seja, era necessário uma linguagem para desenvolvimento e outras para criação de layout, como JavaScript, HTML, DHTML, Flash, etc. O surgimento do Ajax (Asynchronous JavaScript And XML) permitiu a criação de páginas mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações e iniciando assim uma nova geração de aplicações web. A partir daí novas bibliotecas surgiram para melhorar a interatividade do usuário utilizando Ajax. Uma delas é o ExtJS, uma biblioteca JavaScript open source para construção de aplicações web ricas com interfaces gráficas sofisticadas e com alto grau de interatividade com o usuário. O ExtJS é detalhado no artigo: Introdução ao Framework ExtJS (Edição 60). Outra solução foi o GWT (Google Web Toolkit), um conjunto de ferramentas open source que permitem aos desenvolvedores criarem aplicações Ajax na linguagem Java. O compilador GWT traduz código Java para um JavaScript equivalente, que manipula programaticamente o HTML no web browser usando técnicas de DHTML. O GWT trouxe uma grande facilidade para os desenvolvedores Java que normalmente brigavam com o JavaScript para desenvolver interfaces ricas no lado cliente. Outras vantagens de usar a linguagem Java pelo GWT é que ele proporciona um código melhor estruturado, além de facilitar o desenvolvimento RPC cliente-servidor para Java, e ainda elimina a necessidade de bibliotecas como DWR (Direct Web Remoting) para construir pontes entre o serviço Java e os clientes JavaScript. Como desvantagem, o GWT não possui um conjunto de componentes sofisticados como o ExtJS. Para saber mais sobre GWT leia o artigo: Ajax avançado com GWT (Edição 39). Em junho de 2007, Sanjiv Jivan propôs no seu blog a integração do GWT e ExtJS. Seu objetivo é permitir que desenvolvedores Java possam criar interfaces web ricas como as do ExtJS usando apenas a linguagem Java, como proposto pelo GWT. Dessa forma, foi criada a biblioteca GWT-Ext, uma poderosa biblioteca de widgets que provê ricos componentes de interface, tais como grids com ordenação, paginação e filtro, árvores com suporte a drag and drop, comboboxes altamente customizáveis, tab panels, menus, tollbars, forms e muitos outros componentes poderosos com uma API muito fácil de usar. Além disso, é possível construir portlets facilmente, fazer integração com mapas (utilizando o google maps) e ainda a integração com gráficos (utilizando o google charts). A versão mais atual do GWT-Ext é a 2.0.5, lançada em setembro de 2008. Ela utiliza o ExtJS na versão 2.0.2 e o GWT na versão 1.5.2. A Figura 1 ilustra a diversidade de componentes oferecidos pela biblioteca apresentados no ShowCase Demo da biblioteca.
Figura 1. Vários tipos de widgets disponíveis para o GWT-Ext. Desenvolvendo uma aplicação Para ilustrar o uso da biblioteca GWT-Ext apresentaremos um exemplo que consiste em um sistema de controle de pessoal para uma empresa multinacional. Iremos ilustrar o módulo de cadastro de funcionários através das operações CRUD. A idéia é mostrar o potencial da biblioteca através da utilização dos seguintes componentes: Além da utilização dos componentes visuais propriamente ditos, apresentaremos também alguns recursos adicionais da biblioteca, como: preenchimento automático de formulário a partir de um registro selecionado no grid e validação de campos do formulário no cliente. Nossa proposta principal é demonstrar os componentes visuais da biblioteca. Com isso, toda implementação de acesso ao serviço remoto e persistência de dados está fora do escopo de nosso exemplo.
Figura 2. Tela da aplicação exemplo. O exemplo ilustrado na Figura 2 apresenta um menu lateral de funcionários da multinacional por país. Ao clicar em um país, o grid apresenta os funcionários a este associado. Logo acima do grid foi adicionado um toolbar contendo os botões de criação, atualização e exclusão de funcionários. Para atualização e exclusão é necessária a seleção de uma linha no grid. A Figura 3 ilustra o painel de formulário para a criação e atualização de um funcionário. Note que o visual da aplicação se aproxima bastante de uma aplicação desktop.
Figura 3. Formulário para criação e atualização de funcionário. Criando o projeto GWT Vamos agora apresentar um passo-a-passo de como criar um projeto GWT no eclipse. Após a criação do projeto o desenvolvedor estará apto a implementar a solução e executá-la utilizando o ambiente do eclipse. 1. Baixar do site oficial do projeto, a distribuição binária mais recente do GWT e descompactá-la em qualquer diretório, que será referenciado daqui para frente como GWT_HOME (ver o endereço do GWT em Links); 2. Criar a pasta ExemploGWTExt. Ela será utilizada posteriormente para armazenar todo o conteúdo do projeto GWT; 3. Abrir uma janela de interpretador de linha de comandos a partir do diretório ExemploGWTExt e criar a estrutura do projeto eclipse utilizando o toolkit através do seguinte comando: GWT_HOME/projectCreator –eclipse ExemploGWTExt Nesse ponto, são criados os arquivos de configuração de projeto eclipse, .classpath, .project, e os diretórios src e test; 4. No mesmo diretório ExemploGWTExt, gerar os arquivos iniciais necessários para uma aplicação GWT através do seguinte comando: GWT_HOME/applicationCreator –eclipse ExemploGWTExt exemplogwtext.client.ExemploGWTExt O primeiro parâmetro consiste no nome do projeto e o segundo corresponde ao nome completo da classe principal da aplicação. Nesse momento são criados os seguintes pacotes e arquivos: · src/exemplogwtext/client: Esse pacote deve conter todas as classes que irão rodar na parte cliente da aplicação;
Artigo Java Magazine 64 - Conhecendo o GWT-Ext
Artigo da Revista Java Magazine Edição 64.
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.