Author: nbelaevski
Date: 2007-12-04 10:46:30 -0500 (Tue, 04 Dec 2007)
New Revision: 4451
Modified:
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
Log:
validation error message added
Modified:
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java
===================================================================
---
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java 2007-12-04
15:46:25 UTC (rev 4450)
+++
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java 2007-12-04
15:46:30 UTC (rev 4451)
@@ -7,6 +7,7 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -59,7 +60,27 @@
}
};
+ protected boolean isSuitableValue(Object value, Object restoredObject) {
+ if (value instanceof Object[]) {
+ Object[] objects = (Object[]) value;
+ for (int i = 0; i < objects.length; i++) {
+ Object object = objects[i];
+
+ if (object != null && object.equals(restoredObject)) {
+ return true;
+ }
+ }
+ return false;
+ } else {
+ if (value != null) {
+ return ((Collection) value).contains(restoredObject);
+ } else {
+ return false;
+ }
+ }
+ }
+
private static class EditableState implements Serializable {
/**
*
Modified:
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
===================================================================
---
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-12-04
15:46:25 UTC (rev 4450)
+++
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-12-04
15:46:30 UTC (rev 4451)
@@ -6,8 +6,10 @@
import java.util.Collection;
import java.util.Collections;
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.application.FacesMessage;
@@ -28,37 +30,48 @@
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
+import org.ajax4jsf.Messages;
import org.ajax4jsf.model.DataVisitor;
import org.ajax4jsf.model.ExtendedDataModel;
import org.ajax4jsf.model.SequenceDataModel;
+import org.richfaces.component.util.MessageUtil;
import org.richfaces.model.OrderingListDataModel;
public abstract class UIOrderingList extends UIOrderingBaseComponent {
- public UIOrderingList() {
- 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 = UIOrderingList.this.submittedValueHolder;
+ if (submittedValue != null) {
+ Object modelValue = getValue();
+ Iterator iterator = submittedValue.dataMap.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Entry entry = (Entry) iterator.next();
+ Object value = entry.getValue();
+
+ if (!isSuitableValue(modelValue, 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 (UIOrderingList.this.submittedValueHolder != null) {
- //TODO check for item existence
+ setValid(false);
+
+ iterator.remove();
+
+ submittedValue.selection.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);
}
Show replies by date