You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sv...@apache.org on 2005/08/24 16:51:54 UTC
svn commit: r239673 -
/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java
Author: svieujot
Date: Wed Aug 24 07:51:44 2005
New Revision: 239673
URL: http://svn.apache.org/viewcvs?rev=239673&view=rev
Log:
inputSuggestAjax : Fallback when the propper suggest method isn't defined.
Modified:
myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java
Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java?rev=239673&r1=239672&r2=239673&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java Wed Aug 24 07:51:44 2005
@@ -30,6 +30,8 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.el.MethodBinding;
+import javax.faces.el.MethodNotFoundException;
+
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
@@ -43,10 +45,9 @@
*/
public class InputSuggestAjaxRenderer extends HtmlTextRenderer implements AjaxRenderer
{
- //private static Log log = LogFactory.getLog(AjaxInputSuggestRenderer.class);
+ private static final int DEFAULT_MAX_SUGGESTED_ITEMS = 200;
private static final String JAVASCRIPT_ENCODED = "org.apache.myfaces.inputsuggestajax.JAVASCRIPT_ENCODED";
-
/**
* Encodes any stand-alone javascript functions that are needed. Uses either the extension filter, or a
@@ -203,13 +204,27 @@
MethodBinding mb = InputSuggestAjax.getSuggestedItemsMethod();
Collection suggesteds = null;
+ int maxSuggestedCount = InputSuggestAjax.getMaxSuggestedItems()!=null
+ ? InputSuggestAjax.getMaxSuggestedItems().intValue()
+ : DEFAULT_MAX_SUGGESTED_ITEMS;
if (InputSuggestAjax.getMaxSuggestedItems()!=null) {
- suggesteds = (Collection) mb.invoke(context,new Object[]{
- AjaxPhaseListener.getValueForComponent(context, uiComponent),
- InputSuggestAjax.getMaxSuggestedItems()});
+ try{
+ suggesteds = (Collection) mb.invoke(context,new Object[]{
+ AjaxPhaseListener.getValueForComponent(context, uiComponent),
+ new Integer(maxSuggestedCount)});
+ }catch(MethodNotFoundException dummy){
+ suggesteds = (List) mb.invoke(context,new Object[]{
+ AjaxPhaseListener.getValueForComponent(context, uiComponent)});
+ }
} else {
- suggesteds = (List) mb.invoke(context,new Object[]{
- AjaxPhaseListener.getValueForComponent(context, uiComponent)});
+ try{
+ suggesteds = (List) mb.invoke(context,new Object[]{
+ AjaxPhaseListener.getValueForComponent(context, uiComponent)});
+ }catch(MethodNotFoundException dummy){
+ suggesteds = (Collection) mb.invoke(context,new Object[]{
+ AjaxPhaseListener.getValueForComponent(context, uiComponent),
+ new Integer( DEFAULT_MAX_SUGGESTED_ITEMS )});
+ }
}
StringBuffer buf = new StringBuffer();
@@ -227,9 +242,13 @@
buf.append(" id='"+InputSuggestAjax.getListId()+"'");
}
buf.append(">");
-
- for (Iterator i = suggesteds.iterator() ; i.hasNext() ; )
+
+ int suggestedCount=0;
+ for (Iterator i = suggesteds.iterator() ; i.hasNext() ; suggestedCount++)
{
+ if( suggestedCount > maxSuggestedCount )
+ break;
+
buf.append("<li");
if (InputSuggestAjax.getListItemStyleClass() != null)
{