sábado, setembro 02, 2006

JGoodies: Uma opção?

Há tempos atrás (uns 3 anos quase) eu havia trabalhado com o JGoodies Form, para testar seu gerenciador de layout. Embora eu tenha gostado dos resultados, a complexidade era enorme comparado aos meus (recursivos) agrupamentos de JPanels que eu fazia com os gerenciadores mais simples do Swing (com ênfase para o Border e Flow). Isso era na época dos primórdios do Merlin. Mas eu não estava contente.
Depois de navegar bastante, eu "achei" o TableLayout em um fórum da Sun. Era um gerenciador muito parecido com os famigerados tables da web (com os TD e TR). Mas ele funcionava bem. Possibilitava várias coisas que o GridBagLayout do java exigia dezenas (ou mesmo centenas) de ajustes. Ele era bem mais simples. E enfim coloquei o TableLayout como implementação padrão do gerenciador de layouts do Merlin.
Mas como a implementação está mais parada que água de poço (devido várias coisas, infelizmente) e o tempo anda, não posso dar o luxo de ficar esperando as coisas melhorem para eu começar a procurar mais alternativas. Assim, uma reportagem da Java Magazine me chamou a atenção para o JGoodies novamente.
Hoje, passei as últimas horas da madrugada mexendo em algumas coisas dele e implementando uma telinha bem simples, como essa ai ao lado.
Ela não tem nada de mais, mas mostra algumas coisas, como o alinhamento, o tamanho dos campos, o espaçamento, o redimensionamento e o uso de separadores (títulos) entre grupos de controles. Essa tela foi feita com o gerenciador do JGoodies e aplicado um look and feel Plastic3D.
O TableLayout também permite um layout como esse. Mas ele pára por aí. O JGoodies facilita o uso de separadores, de bordas externas (para os controles não ficarem grudados nas bordas do formulário) e é otimizado para o uso de várias resoluções, com formatos diferentes de redimensiomanto (dialog units - dlu, inches, centímetros, milímetros e pixels nativos). Ele também vem com fábricas e métodos auxiliares. Tudo isso facilita a aplicação dele.
Mas ele não é simples e exige um bocado de esforço mental, papel, lápis e borracha. Muita borracha para esboçar as telas antes de programar qualquer coisa.
Bem e o "keko"? Ou seja, e o que tudo isso significa? Significa que é mais uma coisa para eu decidir.
A vantagem do JGoodies é que ele tem mais coisas, como o binding de controles e é claro, os validadores. Tudo isso tem que ser pensado e repensado. Não sei, mas como muita coisa existe para ser implementada, o JGoodies é uma boa.

Links
JGoodies
TableLayout