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);
+ }
+ }
+ }
}
}
}