Openswing - Como retornar todos os dados através de um lookup

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.