[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui ...

Peter Muir peter at bleepbleep.org.uk
Fri Apr 13 11:35:40 EDT 2007


  User: pmuir   
  Date: 07/04/13 11:35:40

  Modified:    src/ui/org/jboss/seam/ui  UISelectItems.java
  Log:
  JBSEAM-1178
  
  Revision  Changes    Path
  1.14      +41 -34    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.13
  retrieving revision 1.14
  diff -u -b -r1.13 -r1.14
  --- UISelectItems.java	17 Mar 2007 15:30:49 -0000	1.13
  +++ UISelectItems.java	13 Apr 2007 15:35:40 -0000	1.14
  @@ -11,6 +11,7 @@
   import javax.faces.convert.Converter;
   import javax.faces.el.ValueBinding;
   import javax.faces.model.DataModel;
  +import javax.faces.model.SelectItem;
   
   import org.jboss.seam.framework.EntityQuery;
   
  @@ -50,6 +51,8 @@
   
      private Boolean disabled;
   
  +   private Object value;
  +
      public String getNoSelectionLabel()
      {
         if (noSelectionLabel != null)
  @@ -163,34 +166,36 @@
      @Override
      public Object getValue()
      {
  -      Object value = super.getValue();
  +      if (value == null)
  +      {
  +         Object originalValue = super.getValue();
         
  -      if (value instanceof Iterable)
  +         if (originalValue instanceof Iterable)
         {
  -         return asSelectItems((Iterable) value);
  +            value = asSelectItems((Iterable) originalValue);
         }
  -      else if (value instanceof DataModel && ((DataModel) value).getWrappedData() instanceof Iterable)
  +         else if (originalValue instanceof DataModel && ((DataModel) originalValue).getWrappedData() instanceof Iterable)
         {
  -         return asSelectItems((Iterable) ((DataModel) value).getWrappedData()); 
  +            value = asSelectItems((Iterable) ((DataModel) originalValue).getWrappedData()); 
         }
  -      else if (value instanceof EntityQuery)
  +         else if (originalValue instanceof EntityQuery)
         {
  -         return asSelectItems(((EntityQuery) value).getResultList());
  +            value = asSelectItems(((EntityQuery) originalValue).getResultList());
         }
  -      else if (value != null && value.getClass().isArray())
  +         else if (originalValue != null && originalValue.getClass().isArray())
         {
  -         if (value.getClass().getComponentType().isPrimitive())
  +            if (originalValue.getClass().getComponentType().isPrimitive())
            {
               List list = new ArrayList();
  -            for (int i = 0; i < Array.getLength(value); i++)
  +               for (int i = 0; i < Array.getLength(originalValue); i++)
               {
  -               list.add(Array.get(value, i));
  +                  list.add(Array.get(originalValue, i));
               }
  -            return asSelectItems(list);
  +               value = asSelectItems(list);
            }
            else
            {
  -            return asSelectItems(Arrays.asList((Object[]) value));
  +               value = asSelectItems(Arrays.asList((Object[]) originalValue));
            }
         }
         else
  @@ -200,13 +205,15 @@
            {
               List<javax.faces.model.SelectItem> selectItems = new ArrayList<javax.faces.model.SelectItem>();
               selectItems.add(noSelectionLabel);
  -            return selectItems;
  +               value = selectItems;
            }
            else 
            {
  -            return value;
  +               value = originalValue;
  +            }
            }
         }
  +      return value;
      }
      
      private List<javax.faces.model.SelectItem> asSelectItems(Iterable iterable) 
  
  
  



More information about the jboss-cvs-commits mailing list