package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.AutoCompleteDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.ServicoDTO; import br.com.centralit.citcorpore.negocio.ServicoService; import br.com.citframework.service.ServiceLocator; public class AutoCompleteServico extends AbstractAutoComplete { @Override public Class<EmpregadoDTO> getBeanClass() { return EmpregadoDTO.class; } @Override public void load(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { // Corrige o enconding do par�metro desejado. final String consulta = new String(request.getParameter("query").getBytes("ISO-8859-1"), "UTF-8"); final String tipoDemanda = request.getParameter("tipoDemanda"); Integer idTipoDemanda = null; if (StringUtils.isNotBlank(tipoDemanda)) { idTipoDemanda = Integer.parseInt(tipoDemanda); } final String contrato = request.getParameter("contrato"); Integer idContrato = null; if (StringUtils.isNotBlank(contrato)) { idContrato = Integer.parseInt(contrato); } final String categoria = request.getParameter("categoria"); Integer idCategoria = null; if (StringUtils.isNotBlank(categoria)) { idCategoria = Integer.parseInt(categoria); } final Collection colRetorno = getServicoService().findByNomeAndContratoAndTipoDemandaAndCategoria(idTipoDemanda, idContrato, idCategoria, consulta); final AutoCompleteDTO autoCompleteDTO = new AutoCompleteDTO(); final List<String> lst = new ArrayList<>(); final List<Integer> lstVal = new ArrayList<>(); if (colRetorno != null) { for (final Iterator it = colRetorno.iterator(); it.hasNext();) { final ServicoDTO servicoDto = (ServicoDTO) it.next(); if (servicoDto.getIdServico() != null) { lst.add(servicoDto.getNomeServico()); lstVal.add(servicoDto.getIdServico()); } } } autoCompleteDTO.setQuery(consulta); autoCompleteDTO.setSuggestions(lst); autoCompleteDTO.setData(lstVal); final String json = getGSON().toJson(autoCompleteDTO); request.setAttribute("json_response", json); } private ServicoService servicoService; private ServicoService getServicoService() throws Exception { if (servicoService == null) { servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null); } return servicoService; } }