Author: pyaschenko
Date: 2010-11-01 10:02:21 -0400 (Mon, 01 Nov 2010)
New Revision: 19828
Modified:
trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
trunk/ui/input/ui/src/main/templates/autocomplete.template.xml
Log:
http://jira.jboss.com/jira/browse/RF-9585
Modified: trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml
===================================================================
--- trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml 2010-11-01
13:50:44 UTC (rev 19827)
+++ trunk/examples/input-demo/src/main/webapp/examples/autocomplete.xhtml 2010-11-01
14:02:21 UTC (rev 19828)
@@ -30,8 +30,14 @@
<div style="height: 300px; width: 300px; overflow: auto;
float:left;">Text
block text block text block text block text block text block text
block text block
+ <script type="text/javascript">
+ function customFilterFunction(subString, value) {
+ if(subString.length>1)
+ if(value.indexOf(subString)!=-1) return true;
+ }
+ </script>
- <input:autocomplete autofill="false" id="myAutocomplete"
clientFilter="if(subString.length>1) if(value.indexOf(subString)!=-1) return
true;" mode="#{autoCompleteBean.mode}" minChars="2"
autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country"
fetchValue="#{country.name}" showButton="true"
+ <input:autocomplete autofill="false" id="myAutocomplete"
clientFilterFunction="customFilterFunction"
mode="#{autoCompleteBean.mode}" minChars="2"
autocompleteMethod="#{autoCompleteBean.autocomplete}" var="country"
fetchValue="#{country.name}" showButton="true"
value = "#{autoCompleteBean.value}"
onchange="return onEvent.call(this, event);" onselectitem="return
onEvent.call(this, event);" onblur="return onEvent.call(this, event);"
onfocus="return onEvent.call(this, event);">
#{country.name} #{country.iso} #{country.domain}
Modified:
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java
===================================================================
---
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java 2010-11-01
13:50:44 UTC (rev 19827)
+++
trunk/ui/input/ui/src/main/java/org/richfaces/component/AbstractAutocomplete.java 2010-11-01
14:02:21 UTC (rev 19828)
@@ -194,7 +194,7 @@
public abstract String getOnbeforedomupdate();
@Attribute
- public abstract String getClientFilter();
+ public abstract String getClientFilterFunction();
@Override
public Converter getConverter() {
Modified:
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
===================================================================
---
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2010-11-01
13:50:44 UTC (rev 19827)
+++
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2010-11-01
14:02:21 UTC (rev 19828)
@@ -45,7 +45,7 @@
import javax.servlet.jsp.jstl.sql.Result;
import org.ajax4jsf.context.AjaxContext;
-import org.ajax4jsf.javascript.JSFunctionDefinition;
+import org.ajax4jsf.javascript.JSReference;
import org.richfaces.component.AbstractAutocomplete;
import org.richfaces.component.AutocompleteLayout;
import org.richfaces.component.MetaComponentResolver;
@@ -69,14 +69,11 @@
})
public abstract class AutocompleteRendererBase extends InputRendererBase implements
MetaComponentRenderer {
- public JSFunctionDefinition getClientFilterFunction(UIComponent component) {
+ public JSReference getClientFilterFunction(UIComponent component) {
AbstractAutocomplete autocomplete = (AbstractAutocomplete) component;
- String clientFilter = (String)
autocomplete.getAttributes().get("clientFilter");
+ String clientFilter = (String)
autocomplete.getAttributes().get("clientFilterFunction");
if (clientFilter != null && clientFilter.length() != 0) {
- JSFunctionDefinition clientFilterFunction = new
JSFunctionDefinition("subString");
- clientFilterFunction.addParameter("value");
- clientFilterFunction.addToBody(clientFilter);
- return clientFilterFunction;
+ return new JSReference(clientFilter);
}
return null;
Modified: trunk/ui/input/ui/src/main/templates/autocomplete.template.xml
===================================================================
--- trunk/ui/input/ui/src/main/templates/autocomplete.template.xml 2010-11-01 13:50:44 UTC
(rev 19827)
+++ trunk/ui/input/ui/src/main/templates/autocomplete.template.xml 2010-11-01 14:02:21 UTC
(rev 19828)
@@ -77,8 +77,8 @@
<cdk:scriptOption attributes="onbegin oncomplete onerror
onbeforedomupdate onchange onselectitem onfocus onblur"
wrapper="eventHandler"/>
<cdk:scriptOption name="filterFunction"
value="#{getClientFilterFunction(component)}" />
<cdk:scriptOption name="isCachedAjax"
value="#{'ajax'==mode ? false : true}" defaultValue="true"
/>
- <cdk:scriptOption name="ajaxMode"
value="#{'client'==mode||'lazyClient'==mode ? false : true}"
defaultValue="true" />
- <cdk:scriptOption name="lazyClientMode"
value="#{'lazyClient'==mode ? true : false}"
defaultValue="false" />
+ <cdk:scriptOption name="ajaxMode"
value="#{'client'==mode||'lazyClient'==mode ? false : true}"
defaultValue="true" />
+ <cdk:scriptOption name="lazyClientMode"
value="#{'lazyClient'==mode ? true : false}"
defaultValue="false" />
</cdk:scriptObject>
new RichFaces.ui.Autocomplete("#{clientId}",
"#{clientId}Input", #{toScriptArgs(options)}