sexta-feira, 18 de março de 2011

Novidades do Swing no Java 7

Olá Pessoal;

Enquanto aguardamos anciosamente a espera da versão final do Java 7 (que está prevista para este ano de 2011), e virá com algumas novidades na linguagem.
Mas queria falar sobre as funcionalidades que virão para incrementar o desenvolvimento desktop em Java. Por isso vamos dar uma olhada em algumas das novidades do Swing que estarão presentes na nova versão do Java.

  • JLayer: O JLayer iniciou do projeto JXLayer (mais os dois seguem caminhos independentes), que serve para desenhar camadas sobre os seus componentes visuais. O que eu achei legal é que você pode registrar eventos em que o JLayer esteja interessado e repintar a camada como você bem entender quando o evento for disparado. Um exemplo disso seria você adicionar um desenho na tela toda a vez que o mouse se mova por exemplo. Alguns exemplos visuais do JLayer:





  • Criação de Janelas e desenhos translucidos: Essa é uma funcionalidade que estará disponivel no Java 7 que é para deixar suas janelas translucidas, ou seja, aquele efeito de transparência, você poderá definir o grau de transparência e também o gradiente que deseja e "tha-ram", veja como sua janela pode ficar:




  • The Nimbus Look & Feel: Outra novidade é que será adicionado mais um Look & Feel, o Nimbus que estará disponivel também no javax.swing a partir da versão 7. Uma tela com esse look & Feel fica assim:


Outra novidade anunciada será uma maior facilidade em trabalhar com a mistura de componentes tanto AWT e Swing em uma mesma tela.

Estou aguardando a versão final do Java 7, enquanto isso, "brincamos" com as versões betas.



Abraços e até a proxíma.


terça-feira, 15 de março de 2011

Algumas formas de melhorar o tempo de compilação do GWT

Olá Pessoal;

Nest post, estou aqui para dizer que nem tudo é maravilha ao se utilizar o GWT. Como o GWT compila o código Java, gerando código Javascript otimizado para cada browser, pode ser que algum módulo tenha um tempo de compilação nada performático.

Trabalho em uma aplicação que tem em torno de 300 módulos GWT e alguns demoram quase 10 minutos para serem compilados (Por erros de design patterns) , imagina se quanto tempo demora a compilação do projeto.

Por isso, disponibilizo para vocês esse link em que o autor se preocupa em demonstrar a importância e dicas para melhorar o tempo de compilação do seu módulo.

link: http://supplychaintechnology.wordpress.com/2010/06/04/gwt_compile_times/

Uma outra dica (que eu acho muito importante) é diminuir os "permutations", ou seja quando o GWT compila um módulo ele compila para cada browser e cada locale, por exemplo, se o seu módulo for compilado para 5 browsers e 10 locales diferentes, irá gerar 50 "permutations" e consequentemente uma demora a mais na compilação.

A dica é definir os browsers que realmente serão utilizados pela aplicação (se for uma aplicação disponivel para web esqueça) e definir o locales de sua aplicação (se sua aplicação é mult-linguagem).

As dicas para diminuir os permutations: http://bazoud.free.fr/post/2008/07/31/Can-I-speed-up-the-GWT-compiler/

Fica a Dica

Abraços

Criando seu primeiro aplicativo com GWT e Netbeans

Pessoal;

Dando continuidade ao artigo sobre introdução ao GWT, e conforme prometido, vou demonstrar como criar um aplicativo GWT usando o Netbeans (No proximo post vou mostrar como criar no Eclipse xD).

Para habilitar o suporte do GWT no netbeans, será necessário a instalação do plugin GWT4NB, que você pode fazer o download a partir do site do projeto: https://gwt4nb.dev.java.net/, a partir dai é só instalar o plugin que irá aparecer a opção de utilizar o Google Web Toolkit nos projetos web.

Com o plugin instalado, vamos começar a desenvolver o nosso primeiro aplicativo GWT, o primeiro passo é criar um novo projeto WEB, como mostra na imagem:

A partir dai, é só configurar o nome do projeto, selecionar qual o servidor será instalado, e na ultima etapa, selecionar o plugin do Google Web Toolkit, como mostra na imagem:

Nesse passo, nos precisamos informar o diretório de instalação do GWT, se não estiver instalado, você pode fazer o download em http://code.google.com/intl/pt-BR/webtoolkit/ ou clicar em "You can download the GWT SDK here"  na tela de configuração.

Também definimos o caminho para nosso primeiro modulo, no caso eu preenchi: com.javacomfarinha.gwt.login.Login (Login será o nome do nosso primeiro modulo GWT).

Pronto, o netbeans irá criar o nosso projeto com a seguinte estrutura:


Com isso, temos criado o nosso primeiro modulo GWT criado pelo Netbeans, agora vou explicar o que são esses arquivos:

Cada modulo GWT, possui essa estrutura, na raiz do pacote do projeto, possui um arquivo gwt.xml com o nome do modulo que e guardam as configurações do modulo, o mais importante para você sobre esse arquivo é que nele nós definimos, quando esse modulo for iniciado, qual tela (que é um EntryPoint no GWT) que será carregada e quais outros modulos criados no seu projeto serão utilizados nesse modulo. Também podemos definir várias outras configurações, mais veremos isto em outros posts.


 Todo modulo GWT também tem essa pacote "client", neste pacote temos todas as classes a respeito da criação das telas/componentes visuais e TODAS as classes que estiverem nesse pacote serão compilados para um código JavaScript.

A Classe LoginEntryPoint é a classe que foi gerada pelo plugin irá exibir nossos componentes na tela do browser, essa classe implementa a interface do GWT chamada EntryPoint. Uma classe EntryPoint será exibida para o usuário quando o modulo for carregado, pois o modulo irá chamar o metodo onModuleLoad que é definido nessa interface, no exemplo gerado pelo plugin, ficou assim:
Nesse exemplo, está sendo adicionado uma label e um botão direto a pagina WEB que irá chamar esse modulo GWT.

O Plugin também criou uma pagina HTML (welcomeGWT.xml) que será responsavel por chamar esse modulo GWT, o código HTML fica assim:
Através da Tag Meta (utilizado nas versões 1.3 e anteriores do GWT e da chamada ao script nocache.js com o nome do módulo, será invocado o modulo Login do GWT.

Agora é só compilar o projeto que o plugin Gwt4Nb irá realizar a compilação do modulo GWT criado, rodar o projeto e chamar a página welcomeGWT.html o resultado final fica assim:


Quando você clica no botão o Label se exibe ou se esconde.

Pronto, um simples e bem abstrato exemplo está funcionando, vou ficar por aqui para deixar vocês criarem os seus primeiros "Hello World" e no proximo post vou continuar com esse mesmo exemplo para criar um exemplo de Login e Senha usando GWT.

Valeu Pessoal