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/09/05 04:44:09 UTC

svn commit: r278665 - /myfaces/api/trunk/src/java/javax/faces/component/UISelectMany.java

Author: svieujot
Date: Sun Sep  4 19:44:04 2005
New Revision: 278665

URL: http://svn.apache.org/viewcvs?rev=278665&view=rev
Log:
MYFACES-492 : UISelectMany doesn't validate.

Modified:
    myfaces/api/trunk/src/java/javax/faces/component/UISelectMany.java

Modified: myfaces/api/trunk/src/java/javax/faces/component/UISelectMany.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/java/javax/faces/component/UISelectMany.java?rev=278665&r1=278664&r2=278665&view=diff
==============================================================================
--- myfaces/api/trunk/src/java/javax/faces/component/UISelectMany.java (original)
+++ myfaces/api/trunk/src/java/javax/faces/component/UISelectMany.java Sun Sep  4 19:44:04 2005
@@ -25,6 +25,7 @@
 import javax.faces.context.FacesContext;
 import javax.faces.convert.ConverterException;
 import javax.faces.el.ValueBinding;
+import javax.faces.model.SelectItem;
 import javax.faces.render.Renderer;
 
 /**
@@ -229,8 +230,8 @@
     {
         boolean empty = convertedValue == null
                         || ((convertedValue instanceof Object[]) && (((Object[]) convertedValue).length == 0))
-                        || ((convertedValue instanceof List) && ((List) convertedValue)
-                                        .isEmpty());
+                        || ((convertedValue instanceof List) && ((List) convertedValue).isEmpty());
+
         if (isRequired() && empty)
         {
             _MessageUtils.addErrorMessage(context, this, REQUIRED_MESSAGE_ID,
@@ -248,7 +249,7 @@
         {
             // all selected values must match to the values of the available options
 
-            if (! (convertedValue instanceof Object[])) {
+            if (! (convertedValue instanceof Object[]) && ! (convertedValue instanceof List)) {
                 _MessageUtils.addErrorMessage(context, this,
                                 INVALID_MESSAGE_ID,
                                 new Object[] {getId()});
@@ -256,26 +257,48 @@
                 return;
             }
 
-            Object[] values = (Object[]) convertedValue;
-            if (values.length > 0)
-            {
-                Collection items = new ArrayList();
-                for (Iterator iter = new _SelectItemsIterator(this); iter
-                                .hasNext();)
-                {
-                    items.add(iter.next());
-                }
-                for (int i = 0, size = values.length; i < size; i++)
-                {
-                    if (!_SelectItemsUtil.matchValue(context, values[i],
-                                    items.iterator()))
-                    {
-                        _MessageUtils.addErrorMessage(context, this,
-                                        INVALID_MESSAGE_ID,
-                                        new Object[] {getId()});
-                        setValid(false);
-                    }
-                }
+            if ( convertedValue instanceof Object[] ){ 
+	            Object[] values = (Object[]) convertedValue;
+	            if (values.length > 0)
+	            {
+	                Collection items = new ArrayList();
+	                for (Iterator iter = new _SelectItemsIterator(this); iter.hasNext();)
+	                {
+	                    items.add( iter.next() );
+	                }
+	                for (int i = 0, size = values.length; i < size; i++)
+	                {
+	                    if (!_SelectItemsUtil.matchValue(context, values[i],
+	                                    items.iterator()))
+	                    {
+	                        _MessageUtils.addErrorMessage(context, this,
+	                                        INVALID_MESSAGE_ID,
+	                                        new Object[] {getId()});
+	                        setValid(false);
+	                    }
+	                }
+	            }
+            }else{ // convertedValue instanceof List
+            	List values = (List) convertedValue;
+	            if ( ! values.isEmpty() )
+	            {
+	                Collection items = new ArrayList();
+	                for (Iterator iter = new _SelectItemsIterator(this); iter.hasNext();)
+	                {
+	                    items.add( iter.next() );
+	                }
+	                for (Iterator i = values.iterator(); i.hasNext();)
+	                {
+	                    if (!_SelectItemsUtil.matchValue(context, i.next(),
+	                                    items.iterator()))
+	                    {
+	                        _MessageUtils.addErrorMessage(context, this,
+	                                        INVALID_MESSAGE_ID,
+	                                        new Object[] {getId()});
+	                        setValid(false);
+	                    }
+	                }
+	            }
             }
         }
     }