/** * */ package org.inbio.m3s.web.controller.ajax; import java.util.Map; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.inbio.m3s.service.autocomplete.AutoCompleteManager; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; /** * @author jgutierrez * */ public class AutoCompleteController extends AbstractController { /* The AutoComplete Options provider must implement this interface*/ private AutoCompleteManager autoCompleteManager; /* For the yahoo auto complete javascript this value always is = "query"*/ private String query = "query"; @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); ServletOutputStream out = response.getOutputStream(); // binary output String queryValue = request.getParameter(query); Map<Integer, String> options = autoCompleteManager.getAutoCompleteOptions(queryValue); if(options!=null){ for (Integer key : options.keySet()) { String value = options.get(key); out.println(value+"\t"+key.toString()); } } out.flush(); out.close(); return null; } /** * @return the autoCompleteManager */ public AutoCompleteManager getAutoCompleteManager() { return autoCompleteManager; } /** * @param autoCompleteManager the autoCompleteManager to set */ public void setAutoCompleteManager(AutoCompleteManager autoCompleteManager) { this.autoCompleteManager = autoCompleteManager; } /** * @return the query */ public String getQuery() { return query; } /** * @param query the query to set */ public void setQuery(String query) { this.query = query; } }