You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2008/08/04 22:22:25 UTC
svn commit: r682490 -
/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java
Author: lu4242
Date: Mon Aug 4 13:22:25 2008
New Revision: 682490
URL: http://svn.apache.org/viewvc?rev=682490&view=rev
Log:
MYFACES-1744 Validation messages is shown for SelectOneMenu in case first child is not SelectItems or SelectItem (skip nested components that does not inherit form UISelectItem or UISelectItems)
Modified:
myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java
Modified: myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java?rev=682490&r1=682489&r2=682490&view=diff
==============================================================================
--- myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java (original)
+++ myfaces/shared/trunk_3.0.x/core/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java Mon Aug 4 13:22:25 2008
@@ -67,6 +67,28 @@
if (_childs.hasNext())
{
UIComponent child = (UIComponent) _childs.next();
+ // When there is other components nested that does
+ // not extends from UISelectItem or UISelectItems
+ // the behavior for this iterator is just skip this
+ // element(s) until an element that extends from these
+ // classes are found. If there is no more elements
+ // that conform this condition, just return false.
+ while (!(child instanceof UISelectItem)
+ && !(child instanceof UISelectItems))
+ {
+ //Try to skip it
+ if (_childs.hasNext())
+ {
+ //Skip and do the same check
+ child = (UIComponent) _childs.next();
+ }
+ else
+ {
+ //End loop, so the final result is return false,
+ //since there are no more components to iterate.
+ return false;
+ }
+ }
if (child instanceof UISelectItem)
{
UISelectItem uiSelectItem = (UISelectItem) child;
@@ -154,11 +176,6 @@
.getName()));
}
}
- else
- {
- //todo: may other objects than selectItems be nested or not?
- //log.error("Invalid component : " + getPathToComponent(child) + " : must be UISelectItem or UISelectItems, is of type : "+((child==null)?"null":child.getClass().getName()));
- }
}
return false;
}