[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