Olá colegas,
tou com uma dúvida quanto ao lookup do openswing.
Tenho um campo de lookup que aponta para o código do objeto e queria recuperar todos os dados do mesmo quando o usuário escolhesse um código válido. O problema é que eu queria recuperar apenas parte dos dados (como o código e descrição) na hora de mostrar na janela de lookup, para agilizar a consulta. Daí quando o usuário escolhesse o código correto é que eu recuperaria o restante dos dados.
alguém sabe como fazer isso? Aqui o código:
public class CodigoFornecedorLookup extends LookupController {
public CodigoFornecedorLookup() {
this.setLookupValueObjectClassName("classesDAO.FornecedorDAO");
this.addLookup2ParentLink("idFornecedor", "idFornecedor");
this.addLookup2ParentLink("descricao","descricao");
this.addLookup2ParentLink("enderecoFornecedor.representante","enderecoFornecedor.representante");
this.addLookup2ParentLink("cpf","cpf");
this.addLookup2ParentLink("cnpj","cnpj");
this.addLookup2ParentLink("fax","fax");
this.addLookup2ParentLink("inscricaoEstadual","inscricaoEstadual");
this.addLookup2ParentLink("enderecoFornecedor.endereco","enderecoFornecedor.endereco");
this.addLookup2ParentLink("enderecoFornecedor.cep","enderecoFornecedor.cep");
this.addLookup2ParentLink("enderecoFornecedor.bairro","enderecoFornecedor.bairro");
this.addLookup2ParentLink("enderecoFornecedor.cidade","enderecoFornecedor.cidade");
this.addLookup2ParentLink("enderecoFornecedor.fone","enderecoFornecedor.fone");
this.addLookup2ParentLink("enderecoFornecedor.estado","enderecoFornecedor.estado");
this.addLookup2ParentLink("enderecoRepresentante.endereco","enderecoRepresentante.endereco");
this.addLookup2ParentLink("enderecoRepresentante.cep","enderecoRepresentante.cep");
this.addLookup2ParentLink("enderecoRepresentante.bairro","enderecoRepresentante.bairro");
this.addLookup2ParentLink("enderecoRepresentante.cidade","enderecoRepresentante.cidade");
this.addLookup2ParentLink("enderecoRepresentante.fone","enderecoRepresentante.fone");
this.addLookup2ParentLink("enderecoRepresentante.estado","enderecoRepresentante.estado");
this.addLookup2ParentLink("emailFornecedor","emailFornecedor");
this.addLookup2ParentLink("emailRepresentante","emailRepresentante");
this.setVisibleColumn("idFornecedor", true);
this.setVisibleColumn("descricao", true);
this.setPreferredWidthColumn("descricao", 200);
this.setFramePreferedSize(new Dimension(340,340));
this.setLookupDataLocator(new LookupDataLocator() {
@Override
public Response getTreeModel(JTree tree) {
return new VOResponse(new DefaultTreeModel(new OpenSwingTreeNode()));
}
@Override
public Response validateCode(String code) {
ArrayList<FornecedorDAO> list = new AcessoFornecedores().recoverPage(code,400,1);
if(list.size()>0)
return new VOListResponse(list,false,list.size());
return new ErrorResponse("Código Invalido");
}
@Override
public Response loadData(int action, int startIndex, Map filteredColumns,
ArrayList currentSortedColumns,
ArrayList currentSortedVersusColumns, Class valueObjectType) {
ArrayList<FornecedorDAO> list = new AcessoFornecedores().recoverPage("",-1,1);
if(list.size() > 0)
return new VOListResponse(list,false,list.size());
else
return new ErrorResponse("Código Invalido");
}
});
}
A classe AcessoFornecedores é responsável pelo acesso ao banco na aplicação.
Da forma que está funciona, mas preciso recuperar todos os dados de uma vez, que é o quero evitar.