Genesis 3.0-EA4: Suporte SWT e tutorial do binding Swing

Foi lançada alguns dias atrás a nova release do genesis, a 3.0-EA4. Uma das novidades é o binding SWT, expandindo o suporte desktop do framework, que já inclui Swing (desde a 3.0-EA3) e Thinlet.

O princípio do binding é o mesmo usado pelas outras tecnologias: você constrói sua interface normalmente, usando o Visual Editor do Eclipse ou codificando na mão mesmo, com o único requerimento de definir o nome dos seus componentes igual ao da propriedade ou ação com o que você deseja ligá-lo. No caso do SWT, usamos a propriedade data dos componentes como seu nome, mas isto pode ser mudado.

Um exemplo prático de uso do binding SWT e o link para o tutorial podem ser encontrados aqui.

Parabéns pelo trabalho Michael!

Realmente vocês estão fazendo um ótimo trabalho.

Boaaaaaaaa to usando aki num novo projeto e é mto boa, vlw Michael pela dica. :smiley:

Parabéns pela iniciativa. Gostei muito da documentação extensiva, pretendo em breve fazer alguns testes com este framework.

Mas me antecipe algumas informações, por favor… eu tenho utilizado as bibliotecas do JGoodies (validation, binding, forms) usando swing. Pelo que puder perceber, as funcionalidades são bem semelhantes (com o genesis fazendo muito mais uso de annotations e JGoodies de… Java). Quais vantagens o genesis tem em relação ao JGoodies?

O que o forms do JGoodies faz nao tem nada a ver com o genesis. Voce poderia compara-lo com outra solucao para desenho de telas, como o Matisse, por exemplo.

As principais diferencas/vantagens do genesis para o binding JGoodies sao:

[list]O seu JavaBean nao precisa ficar disparando eventos nem suportar PropertyChangeListener[/list]
[list]O genesis “descobre” automaticamente quais propriedades ligar, sem necessidade de configuracao[/list]
[list]O genesis consegue ligar metodos a widgets como botoes[/list]
[list]O conceito de @DataProvider do genesis permite popular tabelas, combos e listas com qualquer implementacao de List ou uma array[/list]
[list]O genesis permite a chamada de metodos e atualizacoes de @DataProviders automaticamente com @CallWhen em resposta a mudancas de estado do form, ex: mudou o estado, repopula as cidades[/list]
[list]As anotacoes @EnabledWhen/@VisibleWhen permitem centralizar a logica da propriedade em um lugar soh[/list]
[list]O modelo de binding Swing/SWT do genesis eh ortogonal aos componentes, permitindo que voce escreve binders para seus proprios componentes e registre-os em um lugar soh ao inves de configurar em todas as telas do sistema[/list]

E, alem de diversas outras diferencas, o genesis possui outras features uteis para o desenvolvimento desktop, como remotabilidade transparente, i.e., executar codigo no servidor apenas com uma anotacao, @Remotable, no metodo de uma classe comum sem interfaces (POJO mesmo).

Mister M, você podia dar um update sobre a JSR-296 ou tá sob NDA?
thx.

Nada mudou ainda do que foi apresentado no JavaOne. Estamos aguardando a disponibilizacao do codigo fonte daquele framework exibido lah para podermos colaborar. De certa forma, acredito que essa JSR vai ser parecida com um projeto colaborativo mesmo, o que eh bom (normalmente nao eh assim, voce acaba mais vetando do que incluindo coisas).

A JSR-303, de validacao, promete. Estou gostando bastante de como o spec lead estah conduzindo a definicao da spec. Infelizmente, aih sim, o NDA nao me permite detalhar :slight_smile:

Se puxa-saquismo, o Genesis é um dos projetos mais legais que já vi. Parabéns ao Michael.

Em desenvolvimento de sistemas para Pocket em SWT é possivel usar o Genesis?
Digo isso tendo em vista que a JVM do Pocket não suporta as Annotations.

Teria alguma forma disso ser possivel?

Um abraço

Era exatamente o que estava pensando em te perguntar!

Como vai indo a 303? Ela é própria para bibliotecas e frameworks de validação, certo? Quando vamos poder brincar um pouquinho com ela?

Sobre o Gênesis, o que mais gosto são as condições e o tratamento de erro. Sou fã dessas duas funcionalidades.

[quote=ws_everton]Em desenvolvimento de sistemas para Pocket em SWT é possivel usar o Genesis?
Digo isso tendo em vista que a JVM do Pocket não suporta as Annotations.

Teria alguma forma disso ser possivel?[/quote]

O genesis não está amarrado com o uso de anotações, mas ele usa classes do Java 1.4. É necessário saber qual solução Java você vai usar no device (CDC, PersonalJava, extensões para o device, Superwaba etc) para responder essa pergunta.

Sim, mas provavelmente muito do que ela definir será usado diretamente pelos desenvolvedores “finais”.

Em breve, se tudo der certo :slight_smile:

Aproveitando que ressuscitaram esse tópico e pra evitar confusão, a versão 3.0 final do genesis já se encontra disponível há um 1 mês.

Fala galera do GUJ!!!

Sou novo no GUJ e também nessa linguagem que estou achando muito legal.

E parabens Mister_M, eu achei muito legal a noticia, principalmente que estou desenvolvendo para Desktop, e ja não vejo a hora de testar e depois me desbravar tambem na programação voltada a web.

Valeu a todos do GUJ!!!

hmm…desculpa ressucitar o tópico mas estou com uma perguntinha… olhei no site do genesis e queria ver screenshots de aplicações rodando o genesis no desktop ( swing/awt ) , eu sei que provavelmente vão me dizer pra eu instalar e configurar tudo e bla bla bla… mas é mais por questão de tempo mesmo , pra ver se realmente poderia atender a necessidade do projeto em que eu estou ou não…

desculpe me por qualquer coisa :slight_smile:

Abraços

Olá Alberto,

Embora tenhamos planos de ter os demos rodando no site pra release 3.1, não entendo que isso responda a pergunta se o genesis serve para sua aplicação ou não.

O genesis não ajuda nem atrapalha você na tarefa de “embelezar” a aplicação. Suas funcionalidades simplificam as tarefas que envolvem dar “vida” à sua aplicação, mas não tem nada a ver com a aparência.

Talvez se você pudesse listar seus requisitos (preferencialmente em outro tópico ou na própria lista de usuários do genesis), eu possa fornecer as informações de que você precisa.

Michael, sou desenvolvedor Java-Swing há 4 anos mas ainda não entendo bem esse conceito de Anotação.
Gostaria de saber mais sobre isso juntamente de como utilizar o Genesis.

Por exemplo:
Para usar somente anotações com o swing quais arquivos (.jar) do Genesis eu preciso?

Baixei o Genesis 3.0 (um arquivo .zip) onde tem um diretorio \genesis\dist com varios .jars (quero usar somente no Swing - com NetBeans, Java 1.6 e Firebird) e nao sei quais daqueles devo usar no classpath da minha aplicação.

Tem ainda um diretório \genesis\lib com vários outros diretórios, quais desses seria necessário para o caso de usar o Swing conforme estou querendo?

Teria algum exemplo usando um JavaBean sendo carregado com os dados de uma tabela?

Desculpe as perguntas primárias mas realmente preciso saber sobre isso.
Obrigado

[quote=kjava]Michael, sou desenvolvedor Java-Swing há 4 anos mas ainda não entendo bem esse conceito de Anotação.
Gostaria de saber mais sobre isso juntamente de como utilizar o Genesis.

Por exemplo:
Para usar somente anotações com o swing quais arquivos (.jar) do Genesis eu preciso?

Baixei o Genesis 3.0 (um arquivo .zip) onde tem um diretorio \genesis\dist com varios .jars (quero usar somente no Swing - com NetBeans, Java 1.6 e Firebird) e nao sei quais daqueles devo usar no classpath da minha aplicação.

Tem ainda um diretório \genesis\lib com vários outros diretórios, quais desses seria necessário para o caso de usar o Swing conforme estou querendo?

Teria algum exemplo usando um JavaBean sendo carregado com os dados de uma tabela?

Desculpe as perguntas primárias mas realmente preciso saber sobre isso.
Obrigado[/quote]

Amigo, leia o topico do michel… ele mostra um exemplo para swing… em video aula… e lá mostra os jars que usam… o link está no topico!