[richfaces-svn-commits] JBoss Rich Faces SVN: r4529 - in branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces: renderkit and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Dec 5 22:18:32 EST 2007


Author: nbelaevski
Date: 2007-12-05 22:18:32 -0500 (Wed, 05 Dec 2007)
New Revision: 4529

Modified:
   branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component/UIListShuttle.java
   branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/renderkit/ListShuttleRendererBase.java
Log:
converter enhancements

Modified: branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component/UIListShuttle.java
===================================================================
--- branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component/UIListShuttle.java	2007-12-06 03:18:27 UTC (rev 4528)
+++ branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component/UIListShuttle.java	2007-12-06 03:18:32 UTC (rev 4529)
@@ -548,8 +548,8 @@
 				throw new ConverterException(e.getLocalizedMessage(), e);
 			}
 			
-			newSourceValue = createContainer(sourceList, oldSourceValue.getClass());
-			newTargetValue = createContainer(targetList, oldTargetValue.getClass());
+			newSourceValue = createContainer(sourceList, oldSourceValue);
+			newTargetValue = createContainer(targetList, oldTargetValue);
 		}
 		catch (ConverterException ce) {
 			Object submittedValue = submittedValueHolder;
@@ -660,4 +660,11 @@
 	public abstract String getTargetCaptionLabel();
 	public abstract void setTargetCaptionLabel(String label);
 
+	public ValueBinding getValueBinding(String name) {
+		if ("value".equals(name)) {
+			return super.getValueBinding("sourceValue");
+		}
+		
+		return super.getValueBinding(name);
+	}
 }

Modified: branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/renderkit/ListShuttleRendererBase.java
===================================================================
--- branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/renderkit/ListShuttleRendererBase.java	2007-12-06 03:18:27 UTC (rev 4528)
+++ branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/renderkit/ListShuttleRendererBase.java	2007-12-06 03:18:32 UTC (rev 4529)
@@ -18,6 +18,7 @@
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
+import javax.faces.convert.Converter;
 
 import org.ajax4jsf.component.UIDataAdaptor;
 import org.ajax4jsf.renderkit.ComponentVariables;
@@ -49,16 +50,22 @@
 	private static class ListShuttleRendererTableHolder extends TableHolder {
 
 		private boolean source;
+		private Converter converter;
 		
-		public ListShuttleRendererTableHolder(UIDataAdaptor table, boolean source) {
+		public ListShuttleRendererTableHolder(UIDataAdaptor table, Converter converter, boolean source) {
 			super(table);
 		
+			this.converter = converter;
 			this.source = source;
 		}
 		
 		public boolean isSource() {
 			return source;
 		}
+		
+		public Converter getConverter() {
+			return converter;
+		}
 	}
 	
 	public ListShuttleRendererBase() {
@@ -87,7 +94,7 @@
 		ResponseWriter writer = context.getResponseWriter();
 		StringWriter stringWriter = new StringWriter();
 		context.setResponseWriter(writer.cloneWithWriter(stringWriter));
-		encodeRows(context, shuttle, new ListShuttleRendererTableHolder(shuttle, source));
+		encodeRows(context, shuttle, new ListShuttleRendererTableHolder(shuttle, getConverter(context, shuttle), source));
 		context.getResponseWriter().flush();
 		context.setResponseWriter(writer);
 
@@ -185,7 +192,7 @@
 							}
 
 							value.append(':');
-							value.append(getAsString(context, table, table.getRowData()));
+							value.append(shuttleRendererTableHolder.getConverter().getAsString(context, table, table.getRowData()));
 							
 							writer.writeAttribute(HTML.value_ATTRIBUTE, value.toString(), null);
 							
@@ -279,6 +286,8 @@
 		Map requestParameterMap = externalContext
         								 .getRequestParameterMap();
         
+		
+		
 		if (requestParameterMap.containsKey(clientId)) {
 			Set sourceSelection = new HashSet();
 			Set targetSelection = new HashSet();
@@ -288,6 +297,8 @@
         	
         	boolean facadeSource = true;
         	
+        	Converter converter = getConverter(context, listShuttle);
+        	
         	for (int i = 0; i < strings.length; i++) {
 				String string = strings[i];
 				
@@ -297,7 +308,7 @@
 				}
 				
 				int idx = string.indexOf(':');
-				Object value = getAsObject(context, listShuttle, string.substring(idx + 1));
+				Object value = converter.getAsObject(context, listShuttle, string.substring(idx + 1));
 				String substring = string.substring(0, idx);
 				
 				boolean target = false;




More information about the richfaces-svn-commits mailing list