Bind de JTable para List

3 respostas
R

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.

3 Respostas

mister_m

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

R
É 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
<blockquote><div class="quote-author">RicardoLuis:</div>É 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.
Criado 12 de janeiro de 2007
Ultima resposta 14 de jan. de 2007
Respostas 3
Participantes 2