[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