|
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.
|