Bind de JTable para List  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

Olá a todos...

Estou com o seguinte problema: desejo buscar os dados de uma JTable e setar cada uma das Linhas em um JavaBean e, logo após, adicionar tais JavaBeans a um List.

O problema é que tudo isto deve ser feito de maneira genérica, servindo para qualquer tipo de tabela. Aqui já conseguimos fazer o bind de TextFields e TextAreas sem problemas, utilizando reflection.

Alguém tem alguma sugestão de como fazer o bind de uma linha da JTable a um JavaBean de forma genérica, de modo a funcionar com qualquer JTable e com qualquer JavaBean?

Obs.: Já pesquisamos o Genesis, porém ele não atende nossas necessidades, devido ao framework de validação que construímos aqui.
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

RicardoLuis wrote:Obs.: Já pesquisamos o Genesis, porém ele não atende nossas necessidades, devido ao framework de validação que construímos aqui.


O que exatamente te impede de usar o genesis com o seu framework de validação?

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
RicardoLuis
JavaEvangelist

Membro desde: 12/08/2003 14:47:56
Mensagens: 393
Localização: Cuiabá / MT
Offline

É que a situação é a seguinte: nós desenvolvemos um mini-framework de segurança para a aplicação e esta validação é dada campo a campo do formulário, sendo que o usuário possui tres níveis de permissão:
1 - Visualizar e editar o conteúdo do campo;
2 - Somente visualizar o conteúdo do campo;
3 - Nem visualizar o conteúdo do campo.

E pelo que eu li sobre o genesis, ele atualiza o estado do meu bean automaticamente com o estado da tela, porém após validar o sistema, o conteúdo do formulário em alguns campos é apagado e quando o genesis atualizar o bean, o dados serão perdidos, desta forma não é possível utilizá-lo.

Estou correto em relação ao genesis neste quesito?
Pelo menos foi isso que eu entendi pela leitura que fiz da documentação.
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

RicardoLuis wrote:É que a situação é a seguinte: nós desenvolvemos um mini-framework de segurança para a aplicação e esta validação é dada campo a campo do formulário, sendo que o usuário possui tres níveis de permissão:
1 - Visualizar e editar o conteúdo do campo;
2 - Somente visualizar o conteúdo do campo;
3 - Nem visualizar o conteúdo do campo.

E pelo que eu li sobre o genesis, ele atualiza o estado do meu bean automaticamente com o estado da tela, porém após validar o sistema, o conteúdo do formulário em alguns campos é apagado e quando o genesis atualizar o bean, o dados serão perdidos, desta forma não é possível utilizá-lo.

Estou correto em relação ao genesis neste quesito?


Pelo que eu entendi até aqui, na verdade, não. O genesis apenas mantém a sincronia dos campos para os quais é feito o binding. Entendo que para os campos desabilitados (caso 2), o conteúdo ficará visível. Existem várias maneiras de fazer com que tanto o genesis como o framework de segurança funcionem corretamente:

1. No caso 3, remova o componente da interface ou mude o seu name. Dessa forma, o genesis não o encontrará e não haverá sincronia entre eles.
2. Customize o binding para ignorar os componentes que não devem ser habilitados. Basta para isso prover uma implementação de LookupStrategy que despreze os componentes não relevantes para o usuário atual. A documentação de LookupStrategy explica como fazer isso.
3. Um pouco mais difícil, mas também mais interessante a longo prazo seria expor as regras de segurança através do FormMetadata do seu form, que é o mecanismo do próprio genesis para habilitar/desabilitar e tornar visível/invisível determinado widget.

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team