package com.revolsys.ui.html.fields; import com.revolsys.record.io.format.xml.XmlWriter; import com.revolsys.util.HtmlAttr; import com.revolsys.util.HtmlElem; public class AutoCompleteTextField extends TextField { private String dataUrl; private int maxResults = 25; public AutoCompleteTextField() { } public AutoCompleteTextField(final String name, final String dataUrl, final boolean required) { super(name, required); this.dataUrl = dataUrl; } public String getDataUrl() { return this.dataUrl; } public int getMaxResults() { return this.maxResults; } @Override public void serializeElement(final XmlWriter out) { super.serializeElement(out); out.startTag(HtmlElem.SCRIPT); out.attribute(HtmlAttr.TYPE, "text/javascript"); out.text("$(document).ready(function() {\n"); out.text(" $('#"); out.text(getForm().getName()); out.text(" input[name=\""); out.text(getName()); out.text("\"]').autocomplete({\n"); out.text(" minLength: 3,\n"); out.text(" source: function(request, response) {\n"); out.text(" $.ajax({\n"); out.text(" url: '"); out.text(this.dataUrl); out.text("',"); out.text(" dataType: 'json',"); out.text(" data: {"); out.text(" maxRows: "); out.text(this.maxResults); out.text(",\n"); out.text(" term: request.term\n"); out.text(" },\n"); out.text(" success: response\n"); out.text(" });\n"); out.text(" }\n"); out.text(" });\n"); out.text("});\n"); out.endTag(HtmlElem.SCRIPT); } public void setDataUrl(final String dataUrl) { this.dataUrl = dataUrl; } public void setMaxResults(final int maxResults) { this.maxResults = maxResults; } }