| 
      
      
      From: <pat...@us...> - 2010-09-20 16:50:28
      
     | 
| Revision: 1135
          http://cishell.svn.sourceforge.net/cishell/?rev=1135&view=rev
Author:   pataphil
Date:     2010-09-20 16:50:16 +0000 (Mon, 20 Sep 2010)
Log Message:
-----------
* Fixed validation so it actually works properly.
* Now makes more use of Google Collections.  (The manifest reflects this in its imports.)
* Added Utilities class.
* Not reviewed.
Modified Paths:
--------------
    trunk/core/org.cishell.utility.swt/META-INF/MANIFEST.MF
    trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/SWTModelField.java
Added Paths:
-----------
    trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/field/validation/Utilities.java
Modified: trunk/core/org.cishell.utility.swt/META-INF/MANIFEST.MF
===================================================================
--- trunk/core/org.cishell.utility.swt/META-INF/MANIFEST.MF	2010-09-20 16:48:46 UTC (rev 1134)
+++ trunk/core/org.cishell.utility.swt/META-INF/MANIFEST.MF	2010-09-20 16:50:16 UTC (rev 1135)
@@ -6,7 +6,8 @@
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime
-Import-Package: com.google.common.collect,
+Import-Package: com.google.common.base,
+ com.google.common.collect,
  org.cishell.utilities,
  org.cishell.utility.datastructure,
  org.cishell.utility.datastructure.datamodel,
Modified: trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/SWTModelField.java
===================================================================
--- trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/SWTModelField.java	2010-09-20 16:48:46 UTC (rev 1134)
+++ trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/SWTModelField.java	2010-09-20 16:50:16 UTC (rev 1135)
@@ -11,6 +11,7 @@
 import org.cishell.utility.datastructure.datamodel.field.DataModelFieldContainer;
 import org.cishell.utility.datastructure.datamodel.field.validation.FieldValidationAction;
 import org.cishell.utility.datastructure.datamodel.field.validation.FieldValidator;
+import org.cishell.utility.swt.model.field.validation.Utilities;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
@@ -118,10 +119,19 @@
 	public void addValidator(FieldValidator<ValueType> validator) {
 		validator.addFieldToValidate(this);
 		this.validators.add(validator);
+		// Just in case validator was added after other validators were added.
+		this.otherValidators.remove(validator);
 	}
 
+	public void addValidators(Collection<FieldValidator<ValueType>> validators) {
+		for (FieldValidator<ValueType> validator : validators) {
+			addValidator(validator);
+		}
+	}
+
 	public void addOtherValidators(Collection<FieldValidator<ValueType>> validators) {
-		this.otherValidators.addAll(validators);
+		this.otherValidators.addAll(
+			Utilities.allFieldValidatorsExcept(validators, this.validators));
 	}
 
 	public void addValidationAction(FieldValidationAction action) {
Added: trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/field/validation/Utilities.java
===================================================================
--- trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/field/validation/Utilities.java	                        (rev 0)
+++ trunk/core/org.cishell.utility.swt/src/org/cishell/utility/swt/model/field/validation/Utilities.java	2010-09-20 16:50:16 UTC (rev 1135)
@@ -0,0 +1,21 @@
+package org.cishell.utility.swt.model.field.validation;
+
+import java.util.Collection;
+
+import org.cishell.utility.datastructure.datamodel.field.validation.FieldValidator;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+
+public class Utilities {
+	public static<T> Collection<FieldValidator<T>> allFieldValidatorsExcept(
+			Collection<FieldValidator<T>> allValidators,
+			final Collection<FieldValidator<T>> except) {
+		return Collections2.filter(
+			allValidators, new Predicate<FieldValidator<T>>() {
+				public boolean apply(FieldValidator<T> input) {
+					return !except.contains(input);
+				}
+			});
+	}
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |