You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2005/07/24 13:05:16 UTC

svn commit: r224605 - in /myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax: AjaxPhaseListener.java InputSuggestAjax.java InputSuggestAjaxRenderer.java InputSuggestAjaxTag.java

Author: matzew
Date: Sun Jul 24 04:05:11 2005
New Revision: 224605

URL: http://svn.apache.org/viewcvs?rev=224605&view=rev
Log:
added "maxSuggestedItems" attribute to ajaxSuggestInput. If a user is interested in limiting the suggested Items he has to implement a method that has String and Integer argument.

Modified:
    myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/AjaxPhaseListener.java
    myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjax.java
    myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxRenderer.java
    myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxTag.java

Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/AjaxPhaseListener.java
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/AjaxPhaseListener.java?rev=224605&r1=224604&r2=224605&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/AjaxPhaseListener.java (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/AjaxPhaseListener.java Sun Jul 24 04:05:11 2005
@@ -1,5 +1,17 @@
 /**
- * Copyright 2004 by Irian Marinschek & Spiegl Software OEG
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 package org.apache.myfaces.custom.inputsuggestajax;
 

Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjax.java
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjax.java?rev=224605&r1=224604&r2=224605&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjax.java (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjax.java Sun Jul 24 04:05:11 2005
@@ -32,6 +32,7 @@
 public class InputSuggestAjax extends HtmlInputText implements AjaxComponent
 {
     private MethodBinding _suggestedItemsMethod;
+    private Integer _maxSuggestedItems;
 
     private String _popupId;
     private String _popupStyleClass;
@@ -48,7 +49,7 @@
 
     public Object saveState(FacesContext context)
     {
-        Object[] values = new Object[11];
+        Object[] values = new Object[12];
         values[0] = super.saveState(context);
         values[1] = saveAttachedState(context, _suggestedItemsMethod);
         values[2] = _popupId;
@@ -60,6 +61,7 @@
         values[8] = _listItemStyleClass;
         values[9] = _listItemStyle;
         values[10] = _layout;
+        values[11] = _maxSuggestedItems;
 
         return values;
     }
@@ -78,6 +80,7 @@
         _listItemStyleClass = (String) values[8] ;
         _listItemStyle = (String) values[9];
         _layout = (String) values[10];
+        _maxSuggestedItems = (Integer) values[11];
     }
 
     public void encodeAjax(FacesContext context)
@@ -192,4 +195,12 @@
     {
         _listItemStyle = listItemStyle;
     }
+
+	public Integer getMaxSuggestedItems() {
+		return _maxSuggestedItems;
+	}
+
+	public void setMaxSuggestedItems(Integer suggestedItems) {
+		_maxSuggestedItems = suggestedItems;
+	}
 }

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=224605&r1=224604&r2=224605&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 Sun Jul 24 04:05:11 2005
@@ -183,10 +183,14 @@
         InputSuggestAjax InputSuggestAjax = (InputSuggestAjax) uiComponent;
 
         MethodBinding mb = InputSuggestAjax.getSuggestedItemsMethod();
-
-        List li = (List) mb.invoke(context,new Object[]{context.getExternalContext().getRequestParameterMap().get(
-                uiComponent.getClientId(context))});
-
+        List li = null;
+        if (InputSuggestAjax.getMaxSuggestedItems()!=null) {
+        	li = (List) mb.invoke(context,new Object[]{context.getExternalContext().getRequestParameterMap().get(
+                    uiComponent.getClientId(context)), InputSuggestAjax.getMaxSuggestedItems()});
+        } else {
+        	li = (List) mb.invoke(context,new Object[]{context.getExternalContext().getRequestParameterMap().get(
+            uiComponent.getClientId(context))});
+        }
         StringBuffer buf = new StringBuffer();
         buf.append("<ul");
         if (InputSuggestAjax.getListStyleClass() != null)

Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxTag.java
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxTag.java?rev=224605&r1=224604&r2=224605&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxTag.java (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/InputSuggestAjaxTag.java Sun Jul 24 04:05:11 2005
@@ -35,6 +35,7 @@
     private static Log log = LogFactory.getLog(InputSuggestAjaxTag.class);
 
     private String _suggestedItemsMethod;
+    private String _maxSuggestedItems;
 
     private String _popupId;
     private String _popupStyleClass;
@@ -62,6 +63,7 @@
         super.release();
 
        _suggestedItemsMethod = null;
+       _maxSuggestedItems = null;
        _popupId = null;
        _popupStyleClass = null;
        _popupStyle = null;
@@ -78,7 +80,8 @@
 
         super.setProperties(component);        
 
-        setSuggestedItemsMethodProperty(getFacesContext(),component,_suggestedItemsMethod);
+        setIntegerProperty(component,"maxSuggestedItems", _maxSuggestedItems);
+         setSuggestedItemsMethodProperty(getFacesContext(),component,_suggestedItemsMethod);
         setStringProperty(component,"popupId",_popupId);
         setStringProperty(component,"popupStyleClass",_popupStyleClass);
         setStringProperty(component,"popupStyle",_popupStyle);
@@ -102,8 +105,15 @@
             }
             if (isValueReference(suggestedItemsMethod))
             {
-                MethodBinding mb = context.getApplication().createMethodBinding(suggestedItemsMethod,new Class[]{String.class});
-                ((InputSuggestAjax)component).setSuggestedItemsMethod(mb);
+            	if (((InputSuggestAjax)component).getMaxSuggestedItems()!=null) {
+                    MethodBinding mb = context.getApplication().createMethodBinding(suggestedItemsMethod,new Class[]{String.class, Integer.class});
+                    ((InputSuggestAjax)component).setSuggestedItemsMethod(mb);
+            	} else {
+                    MethodBinding mb = context.getApplication().createMethodBinding(suggestedItemsMethod,new Class[]{String.class});
+                    ((InputSuggestAjax)component).setSuggestedItemsMethod(mb);
+            	}
+            	
+            	
             }
             else
             {
@@ -111,6 +121,8 @@
             }
         }
     }
+    
+    // setter methodes to populate the components properites
 
     public void setLayout(String layout)
     {
@@ -160,5 +172,9 @@
     public void setListItemStyle(String listItemStyle)
     {
         _listItemStyle = listItemStyle;
+    }
+    
+    public void setMaxSuggestedItems(String maxSuggestedItems) {
+    	_maxSuggestedItems = (maxSuggestedItems);
     }
 }