[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