↓ Arquivo ↓

Categoria → smargwt

Configurando o SmartGWT em um projeto do Eclipse

A muito tempo tinha falado em escrever um artigo sobre SmartGWT, mas acabei ‘se enrolando’ e isso nunca aconteceu. Mas nos últimos dias, tenho acompanhado as estatistícas do blog com mais atenção, pois configurei o Google Analytics. Por lá, que boa parte dos visitantes daqui do blog, chegam nele pelo Google, e atrás de artigos sobre SmartGWT. Eu sempre postei notícias sobre os lançamentos aqui, mas nunca tinha feito um artigo sobre. Esse é o primeiro, e acredito que será o início de uma série deles.

Irei mostrar como configurar um projeto já criado para funcionar com SmartGWT. Já escrevi um artigo a algum tempo mostrando como configurar o Eclipse com o plugin do Google e criar um projeto do Eclipse com ele. Esse artigo explica como utilizar o Google Plugin com o GWT 1.6, mas ele funciona muito bem com o 1.7.*, e também funciona com o GWT 2.0 MS2. E o artigo foi testado e escrito se baseando no SmartGWT 1.3.

Para configurar o SmartGWT em um projeto já criado, siga os seguintes passos:

  1. Baixe o SmartGWT do seguinte local: http://code.google.com/p/smartgwt/
  2. Descompacte o arquivo .zip e copie o arquivo smartgwt.jar para o diretório “war/WEB-INF/lib” do seu projeto.
  3. Dê um refresh em seu projeto (clique em cima do nome dele no Package Explorer e pressione F5).
  4. Vá em “Configure Build Path” (botão direito em cima do projeto no Package Explorer, Build Path, Configure Build Path).
  5. Vá em Libraries, clique em “Add Jar” e adicione o smartgwt.jar a lista de bibliotecas.
  6. Vá no arquivo de configuração do módulo (um que termina com a extensão *.gwt.xml) e adicione a seguinte linha: “<inherits name=’com.smartgwt.SmartGwt’/>”
  7. Vá no arquivo html(o que a aplicação carrega por padrão quando ela inicia) e adicione a seguinte linha dentro do HEAD: “<script> var isomorphicDir = “[NOME_DO_MODULO]/sc/”; </script>”. O “[NOME_DO_MODULO]” deve ser substituído pelo mesmo nome que está no arquivo “.gwt.xml”. Lá ele está no atributo rename-to da tag module.

Com isso o projeto já deve funcionar com o SmartGWT. Se quiser um exemplo pronto para teste, cole o seguinte conteúdo em seu EntryPoint, adicionando as linhas dentro do seu onModule.

final TextItem txt = new TextItem("nome", "Nome");

Button btn = new Button("Clique");
btn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert((String) txt.getValue());
}
});

DynamicForm form = new DynamicForm();
form.setFields(txt);

VLayout v = new VLayout();
v.addMember(form);
v.addMember(btn);

v.draw();

Salve e tente rodar o exemplo. Caso funcionar corretamente, irá aparecer uma caixa de texto com um botão. Quando clicar no botão, irá aparecer em um alert o que foi digitado no campo de texto.

Lançado o SmartGWT 1.1

Foi lançada a nova versão do SmartGWT 1.1. Esta versão se destaca pelo grande número de novidades. Além da correção de mais de 50 bugs desde a versão 1.0 b2, também tem alguns recursos interessantes. O principal  é o GWT-RPC DataSource. Antes, para utilizar este recurso, você mesmo devia implementar uma classe de DataSource baseado em Remote Services ou copiar a implementação já pronta do fórum do SmartGWT. Acho que era uma recurso que faltava mesmo, que falta até mesmo no GWT-EXT(que podia ser contornado através da classe GWTProxy do GWT-EX-UX).

Mas os recursos não param por aí. Também tem uma série de componentes novos, suporte a GWT 1.6, 14 idiomas(Português incluído) e muito mais.

Mas ainda acho que falta uma alternativa a Livegrid. Sei que é mais web2.0 esse conceito de Livegrid, mas acho que Grids no modo antigo(botão voltar, avançar, etc.) são mais fáceis de se achar. Eu prefiro uma Toolbar com a opção de voltar, avançar, etc. do que uma barra de rolagem apenas.

Mas no geral, o SmartGWT, em sua primeira versão estável(até agora era beta), está se mostrando superior a tecnologias parecidas, como o GXT(ExtGWT), GWT-EXT, Mosaic, entre outros. Na minha opinião é a melhor biblioteca de componentes RIA para GWT. Vale a pena testar.

Se estiver afim de conferir o showcase, fazer download, entre outros, visite o seguinte link:

http://code.google.com/p/smartgwt/

Série de Artigos sobre GWT(Google Web Toolkit)

Olá. Vou começar a escrever e postar aqui no blog uma série de artigos sobre GWT. Já estou escrevendo o primeiro e pretendo escrever mais. Mas antes de terminar o primerio e começar a postar aqui este artigos, resolvi dar uma introdução sobre e explicar o que planejo.
Primeiramente digo que de inicio pretendo “começar pelo início”. O que isso quer dizer? Pretendo começar com artigos básicos sobre como utilizar o GWT, configurar o GWT no Eclipse(se for necessário aprofundo falando sobre Netbeans, IntelliJ ou outra IDE), utilizar Remote Services, utilizar os componentes básicos do GWT, utilizar com PHP no lado Servidor e etc. Ou seja, pretendo que tudo funcione como fosse um livro que cada post seja um capítulo por exemplo.
Mas pretendo ir além do “GWT Puro”. Pretendo também falar também sobre SmartGWT e GWT-EXT. Mas das 2 vou dar mais preferência para os SmartGWT. Motivos para isso no post “SmartGWT 1.0b1 lançado“.
O primeiro da série ainda não tenho previsão para postagem. Mas acredito que até Quarta ele esteja pronto. Mas enquanto isso, vai alguns link’s para servir de introdução do assunto.

GWT:
http://code.google.com/intl/pt-BR/webtoolkit/
http://www.gwt.com.br/

GWT-EXT:
http://www.gwt-ext.com/
http://www.extjs.com/

SmartClient:
http://www.smartclient.com/smartgwt
http://www.smartclient.com

SmartGWT/GWT-EXT:
http://www.jroller.com/sjivan/

Ps.: Mesmo com essa série de artigos sobre GWT, pretendo ainda continuar a postar minhas inutilidades. Nem repare.

SmartGWT 1.0b1 lançado

A alguns dias atrás foi lançado(depois de algum tempo que foi anunciado o projeto) o SmartGWT. O SmartGWT é um wrapper dara SmartClient, que traz novos componentes, mais parecidos com desktop, para o GWT(Google Web Toolkit). Esse projeto é de autoria de Sanjiv Jivan, o mesmo que criou o GWT-EXT, que é um wrapper para o ExtJS.

Apesar de não ter utilizado ainda o SmartGWT, o que tenho que dizer é que é um projeto bem promissor e na sua primeira versão parece superar o GWT-EXT em muitos quesitos. O maior dele, acredito eu, seja os memory leak’s. A Isomorphic Software, empresa que desenvolve o SmartClient, diz que o mesmo é livre de memory leak’s. E pelos clientes deles, acredito que eles não iam falar apenas pelo “marketing”. Para quem utiliza GWT-EXT ou até mesmo ExtJS, sabe que o mesmo tem graves problemas com referências circulares em JS, “orphan nodes” e outras coisas. Para aplicações realmente grandes, isso se torna um grande problema, por a aplicação ficar acumulando a memória do navegador com coisas que deveriam ser eliminadas.

Para a versão 3(ou 2.3, não me lembro) do ExtJS, eles prometem acabar com esses problemas. Mas temos um problema aí. A licença. Até a versão 2.0.2 do ExtJS tinhamos uma licença como LGPL. A partir da versão 2.1, a licença foi alterada para GPLv3. E GPLv3 é(me corrijam se eu estiver errado) uma licença que te obriga a compartilhar o código, e “contamina” todos os projetos que utiliza código licenciado com a mesma. Ou seja, é uma licença que não serve para ser utilizada comercialmente, pois nesse caso o código necessita ser restrito, para grande parte das aplicações(não, o mundo não é tão ideal como o Stallman quer). E nesse caso, por caso disso, o GWT-EXT não pode acompanhar a evolução do ExtJS. O GWT-EXT ficou restrito a versão 2.0.2 do ExtJS, a última em LGPL. E no caso do ExtJS, ele tem LGPL misturado com uma licença própria, que impede de criar um fork do ExtJS. Então o melhor a ser feito foi tentar corrigir os problemas do ExtJS via GWT-EXT, para as aplicações que já existem não ficarem ser suporte e criar algo novo que possa ser evoluir para novos usuários. E aí que entra o SmartGWT.

O SmartClient era de código fechado até 2007. Eles da Isomorphic abriram o código e licenciaram como LGPL. E prometem mante-lo assim. E apoiam o projeto do SmartGWT. Ou seja, tudo caminha para que o SmartGWT seja uma ótima alternativa para o GWT-EXT. Tudo isso se os Lordes de Kobol concordarem. heheeh.

Links:

SmartGWT: http://code.google.com/p/smartgwt/

SmartClient: http://www.smartclient.com/