[jboss-cvs] jboss-seam/ui/src/main/java/org/jboss/seam/ui/component ...

Peter Muir peter at bleepbleep.org.uk
Fri Jan 4 13:58:47 EST 2008


  User: pmuir   
  Date: 08/01/04 13:58:47

  Modified:    ui/src/main/java/org/jboss/seam/ui/component 
                        UISelectItems.java
  Log:
  Another refactor
  
  Revision  Changes    Path
  1.11      +36 -39    jboss-seam/ui/src/main/java/org/jboss/seam/ui/component/UISelectItems.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UISelectItems.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/ui/src/main/java/org/jboss/seam/ui/component/UISelectItems.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -b -r1.10 -r1.11
  --- UISelectItems.java	4 Jan 2008 18:23:19 -0000	1.10
  +++ UISelectItems.java	4 Jan 2008 18:58:47 -0000	1.11
  @@ -25,7 +25,7 @@
    */
   public abstract class UISelectItems extends javax.faces.component.UISelectItems {
      
  -   private Object value;
  +   private List<javax.faces.model.SelectItem> selectItems;
      private Object originalValue;
      
      private class NullableSelectItem extends javax.faces.model.SelectItem
  @@ -145,64 +145,42 @@
      @Override
      public Object getValue()
      {
  -      if (value == null || originalValue == null || !originalValue.equals(super.getValue()))
  +      if (selectItems == null || originalValue == null || !originalValue.equals(super.getValue()))
         {
            originalValue = super.getValue();
  -         
  +         selectItems = new ArrayList<javax.faces.model.SelectItem>();
  +         javax.faces.model.SelectItem noSelectionLabel = noSelectionLabel();
  +         if (noSelectionLabel != null) 
  +         {
  +            selectItems.add(noSelectionLabel);
  +         }
            if (originalValue instanceof Iterable)
            {
  -            value = asSelectItems((Iterable) originalValue);
  +            selectItems.addAll(asSelectItems((Iterable) originalValue));
            }
            else if (originalValue instanceof DataModel && ((DataModel) originalValue).getWrappedData() instanceof Iterable)
            {
  -            value = asSelectItems((Iterable) ((DataModel) originalValue).getWrappedData()); 
  +            selectItems.addAll(asSelectItems((Iterable) ((DataModel) originalValue).getWrappedData())); 
            }
            else if (originalValue instanceof Query)
            {
  -            value = asSelectItems(((Query) originalValue).getResultList());
  +            selectItems.addAll(asSelectItems(((Query) originalValue).getResultList()));
            }
            else if (originalValue != null && originalValue.getClass().isArray())
            {
  -            if (originalValue.getClass().getComponentType().isPrimitive())
  -            {
  -               List list = new ArrayList();
  -               for (int i = 0; i < Array.getLength(originalValue); i++)
  -               {
  -                  list.add(Array.get(originalValue, i));
  -               }
  -               value = asSelectItems(list);
  -            }
  -            else
  -            {
  -               value = asSelectItems(Arrays.asList((Object[]) originalValue));
  -            }
  -         }
  -         else
  -         {
  -            javax.faces.model.SelectItem noSelectionLabel = noSelectionLabel();
  -            if (noSelectionLabel != null) 
  -            {
  -               List<javax.faces.model.SelectItem> selectItems = new ArrayList<javax.faces.model.SelectItem>();
  -               selectItems.add(noSelectionLabel);
  -               value = selectItems;
  +            selectItems.addAll(asSelectItems(arrayAsList(originalValue)));
               }
  -            else 
  +         else if (selectItems.size() == 0)
               {
  -               value = originalValue;
  -            }
  +            return originalValue;
            }
         }
  -      return value;
  +      return selectItems;      
      }
      
      private List<javax.faces.model.SelectItem> asSelectItems(Iterable iterable) 
      {
  -      final List<javax.faces.model.SelectItem> selectItems =  new ArrayList<javax.faces.model.SelectItem>();
  -      javax.faces.model.SelectItem noSelectionLabel = noSelectionLabel();
  -      if (noSelectionLabel != null) 
  -      {
  -         selectItems.add(noSelectionLabel);
  -      }
  +      List<javax.faces.model.SelectItem> selectItems =  new ArrayList<javax.faces.model.SelectItem>();
         for (final Object o : iterable)
         {
            selectItems.add(new ContextualSelectItem(o)
  @@ -233,6 +211,8 @@
         return selectItems;
      }
   
  +   
  +
      private javax.faces.model.SelectItem noSelectionLabel()
      {
         if (isShowNoSelectionLabel())
  @@ -302,4 +282,21 @@
         }
      }
   	
  +   private static List arrayAsList(Object array)
  +   {
  +      if (array.getClass().getComponentType().isPrimitive())
  +      {
  +         List list = new ArrayList();
  +         for (int i = 0; i < Array.getLength(array); i++)
  +         {
  +            list.add(Array.get(array, i));
  +         }
  +         return list;
  +      }
  +      else
  +      {
  +         return Arrays.asList((Object[]) array);
  +      }
  +   }
  +	
   }
  
  
  



More information about the jboss-cvs-commits mailing list