[richfaces-svn-commits] JBoss Rich Faces SVN: r4449 - branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Dec 4 10:46:21 EST 2007


Author: nbelaevski
Date: 2007-12-04 10:46:21 -0500 (Tue, 04 Dec 2007)
New Revision: 4449

Modified:
   branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component/UIListShuttle.java
Log:
validation error message added

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-04 15:32:55 UTC (rev 4448)
+++ branches/3.1.x/ui/listShuttle/src/main/java/org/richfaces/component/UIListShuttle.java	2007-12-04 15:46:21 UTC (rev 4449)
@@ -9,11 +9,13 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
+import java.util.Map.Entry;
 
 import javax.faces.FacesException;
-import javax.faces.component.UIComponent;
+import javax.faces.application.FacesMessage;
 import javax.faces.component.UIInput;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.ConverterException;
@@ -23,8 +25,9 @@
 import javax.faces.event.ValueChangeListener;
 import javax.faces.model.DataModel;
 
+import org.ajax4jsf.Messages;
 import org.ajax4jsf.model.DataVisitor;
-import org.richfaces.component.UIOrderingBaseComponent.UpdateModelCommand;
+import org.richfaces.component.util.MessageUtil;
 import org.richfaces.model.ListShuttleDataModel;
 import org.richfaces.model.ListShuttleRowKey;
 
@@ -44,30 +47,44 @@
 	private Collection targetSelection;
 	private boolean targetSelectionSet;
 
-	public UIListShuttle() {
-		super();
+	protected void processDecodes(FacesContext faces, Object argument) {
+		if (!this.isRendered())
+			return;
+		this.decode(faces);
 
-		final ComponentVisitor decodeVisitor = this.decodeVisitor;
-		
-		this.decodeVisitor = new ComponentVisitor() {
+		SubmittedValue submittedValue = UIListShuttle.this.submittedValueHolder;
+		if (submittedValue != null) {
+			if (submittedValue != null) {
+				Object modelSourceValue = getSourceValue();
+				Object modelTargetValue = getTargetValue();
+				
+				Iterator iterator = submittedValue.map.entrySet().iterator();
+				while (iterator.hasNext()) {
+					Entry entry = (Entry) iterator.next();
+					Object value = entry.getValue();
+					
+					if (!isSuitableValue(modelSourceValue, value) && !isSuitableValue(modelTargetValue, value)) {
+						String messageText = Messages.getMessage(
+								Messages.INVALID_VALUE, MessageUtil.getLabel(faces, this), value);
+						
+						FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, messageText, null);
+						faces.addMessage(this.getClientId(faces), message);
 
-			public void processComponent(FacesContext context, UIComponent c,
-					Object argument) throws IOException {
-
-				if (UIListShuttle.this.submittedValueHolder != null) {
-					//TODO check for item existence
+						setValid(false);
+						
+						iterator.remove();
+						
+						submittedValue.sourceSelection.remove(value);
+						submittedValue.targetSelection.remove(value);
+						
+						if (submittedValue.activeItem != null && submittedValue.activeItem.equals(value)) {
+							submittedValue.activeItem = null;
+						}
+					}
 				}
-				
-				decodeVisitor.processComponent(context, c, argument);
 			}
+		}
 
-		};
-	}
-	
-	protected void processDecodes(FacesContext faces, Object argument) {
-		if (!this.isRendered())
-			return;
-		this.decode(faces);
 		this.iterate(faces, decodeVisitor, argument);
 	}
 




More information about the richfaces-svn-commits mailing list