[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