[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui ...
Peter Muir
peter at bleepbleep.org.uk
Wed Jan 31 15:05:16 EST 2007
User: pmuir
Date: 07/01/31 15:05:16
Modified: src/ui/org/jboss/seam/ui UISelectItems.java
Log:
Support arrays of primitive type in s:selectItems
Revision Changes Path
1.5 +25 -6 jboss-seam/src/ui/org/jboss/seam/ui/UISelectItems.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UISelectItems.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/UISelectItems.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- UISelectItems.java 31 Jan 2007 18:30:58 -0000 1.4
+++ UISelectItems.java 31 Jan 2007 20:05:16 -0000 1.5
@@ -1,5 +1,6 @@
package org.jboss.seam.ui;
+import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -144,17 +145,35 @@
return createSelectItems(super.getValue());
}
- private Object createSelectItems(Object value) {
+ private Object createSelectItems(Object value)
+ {
Iterable<?> iterable = null;
- if (value instanceof DataModel) {
+ if (value instanceof DataModel)
+ {
value = ((DataModel) value).getWrappedData();
}
- if (value.getClass().isArray()) {
+ if (value.getClass().isArray())
+ {
+ if (value.getClass().getComponentType().isPrimitive())
+ {
+ List list = new ArrayList();
+ for (int i = 0; i < Array.getLength(value); i++)
+ {
+ list.add(Array.get(value, i));
+ }
+ iterable = list;
+ }
+ else
+ {
iterable = Arrays.asList((Object[]) value);
- } else if (value instanceof Iterable) {
+ }
+ }
+ else if (value instanceof Iterable)
+ {
iterable = (Iterable) value;
}
- if (iterable != null) {
+ if (iterable != null)
+ {
List<javax.faces.model.SelectItem> selectItems = new ArrayList<javax.faces.model.SelectItem>();
addNoSelectionLabel(selectItems, iterable);
for (Object o : iterable) {
More information about the jboss-cvs-commits
mailing list