Hi

Patch attached.

Regards, Noel.

Greg Brown wrote:
> Hi Noel,
>
> While attempting to add a validator example to the Kitchen Sink demo, I 
> noticed a couple of things that still need a bit more work:
>
> 1) The validation classes need more Javadoc. I'll admit that we're pretty lax 
> about method Javadoc a lot of the time, but we do try to make sure that every 
> class has at least a minimal description. Otherwise, the documentation tends 
> to look a bit unprofessional.
>
> 2) Each concrete validator should have a no-arg constructor and bean 
> properties for configuring its behavior so it can be used in WTKX. For 
> example, RegexTextValidator should have a "pattern" property:
>
> Pattern getPattern()
> void setPattern(Pattern pattern)
> void setPattern(String pattern)
>
> The string setter allows us to use it from WTKX like this:
>
> <TextInput>
>     <validator>
>         <validation:RegexTextValidator pattern="[0-9]"/>
>     </validator>
> </TextInput>
>
> WTKX automatically handles setters for primitive types (via BeanDictionary), 
> so you don't need to provide String overloads for those. However, any 
> non-primitive setters will require a String overload.
>
> We'd very much like to get these updates in before we release version 1.1. Do 
> you think you will have time to do it in the very near future?
>
> Thanks,
> Greg
>
>
>   

Index: wtk/src/pivot/wtk/text/validation/DecimalValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/DecimalValidator.java     (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/DecimalValidator.java     (working copy)
@@ -18,10 +18,12 @@
 import java.text.ParseException;
 
 /**
- *
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for decimal values.
+ *  
  * @author Noel Grandin
  */
 public abstract class DecimalValidator extends 
FormattedValidator<NumberFormat> {
+    
     protected DecimalValidator(DecimalFormat format) {
         super(format);
     }
Index: wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java (working copy)
@@ -14,17 +14,39 @@
 package pivot.wtk.text.validation;
 
 /**
- *
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for a double value 
limited to a range.
+ * 
  * @author Noel Grandin
  */
 public class DoubleRangeValidator extends DoubleValidator {
-    private final double minValue, maxValue;
+    private double minValue, maxValue;
 
+    public DoubleRangeValidator() {
+        this.minValue = 0;
+        this.maxValue = 1;
+    }
+    
     public DoubleRangeValidator(double minValue, double maxValue) {
         this.minValue = minValue;
         this.maxValue = maxValue;
     }
 
+    public double getMinimum() {
+        return minValue;
+    }
+
+    public void setMinimum(double minValue) {
+        this.minValue = minValue;
+    }
+
+    public double getMaximum() {
+        return maxValue;
+    }
+
+    public void setMaximum(double maxValue) {
+        this.maxValue = maxValue;
+    }
+
     @Override
     public boolean isValid(String text) {
         boolean valid = false;
Index: wtk/src/pivot/wtk/text/validation/DoubleValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/DoubleValidator.java      (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/DoubleValidator.java      (working copy)
@@ -14,6 +14,7 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for a double value.
  *
  * @author Noel Grandin
  */
Index: wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java  (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java  (working copy)
@@ -14,17 +14,39 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for a float value 
limited to a range.
  *
  * @author Noel Grandin
  */
 public class FloatRangeValidator extends FloatValidator {
-    private final float minValue, maxValue;
+    private float minValue, maxValue;
 
+    public FloatRangeValidator() {
+        this.minValue = 0;
+        this.maxValue = 1;
+    }
+    
     public FloatRangeValidator(float minValue, float maxValue) {
         this.minValue = minValue;
         this.maxValue = maxValue;
     }
 
+    public float getMinimum() {
+        return minValue;
+    }
+
+    public void setMinimum(float minValue) {
+        this.minValue = minValue;
+    }
+
+    public float getMaximum() {
+        return maxValue;
+    }
+
+    public void setMaximum(float maxValue) {
+        this.maxValue = maxValue;
+    }
+    
     @Override
     public boolean isValid(String text) {
         boolean valid = false;
Index: wtk/src/pivot/wtk/text/validation/FloatValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/FloatValidator.java       (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/FloatValidator.java       (working copy)
@@ -14,6 +14,7 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for a float value.
  *
  * @author Noel Grandin
  */
Index: wtk/src/pivot/wtk/text/validation/FormattedValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/FormattedValidator.java   (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/FormattedValidator.java   (working copy)
@@ -16,12 +16,15 @@
 import java.text.ParsePosition;
 
 /**
- *
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for a {...@link 
java.text.Format}'ed value.
+ * 
+ * This class is mostly intended to be a base-class for other validators.
+ * 
  * @author Noel Grandin
  */
 public abstract class FormattedValidator<TFormat extends java.text.Format> 
implements Validator {
     protected final TFormat format;
-
+    
     protected FormattedValidator(TFormat format) {
         this.format = format;
     }
Index: wtk/src/pivot/wtk/text/validation/IntRangeValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/IntRangeValidator.java    (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/IntRangeValidator.java    (working copy)
@@ -14,17 +14,39 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for an int value 
limited to a range.
  *
  * @author Noel Grandin
  */
 public class IntRangeValidator extends IntValidator {
-    private final int minValue, maxValue;
+    private int minValue, maxValue;
 
+    public IntRangeValidator() {
+        this.minValue = 0;
+        this.maxValue = 1;
+    }
+    
     public IntRangeValidator(int minValue, int maxValue) {
         this.minValue = minValue;
         this.maxValue = maxValue;
     }
 
+    public int getMinimum() {
+        return minValue;
+    }
+
+    public void setMinimum(int minValue) {
+        this.minValue = minValue;
+    }
+
+    public int getMaximum() {
+        return maxValue;
+    }
+
+    public void setMaximum(int maxValue) {
+        this.maxValue = maxValue;
+    }
+    
     @Override
     public boolean isValid(String text) {
         boolean valid = false;
Index: wtk/src/pivot/wtk/text/validation/IntValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/IntValidator.java (revision 758676)
+++ wtk/src/pivot/wtk/text/validation/IntValidator.java (working copy)
@@ -14,6 +14,7 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for an int value.
  *
  * @author Noel Grandin
  */
Index: wtk/src/pivot/wtk/text/validation/RegexTextValidator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/RegexTextValidator.java   (revision 
758676)
+++ wtk/src/pivot/wtk/text/validation/RegexTextValidator.java   (working copy)
@@ -14,13 +14,19 @@
 package pivot.wtk.text.validation;
 
 import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
 
 /**
- *
+ * A {...@link pivot.wtk.TextInput} {...@link Validator} for a regular 
expression.
+ * 
+ * @see Pattern
  * @author Noel Grandin
  */
 public class RegexTextValidator implements Validator {
-    private final Pattern p;
+    private Pattern p;
+
+    public RegexTextValidator() {
+    }
 
     public RegexTextValidator(Pattern p) {
         this.p = p;
@@ -30,6 +36,22 @@
         this.p = Pattern.compile(regexPattern);
     }
 
+    public Pattern getPattern() {
+        return p;
+    }
+
+    public void setPattern(Pattern pattern) {
+        this.p = pattern;
+    }
+
+    /**
+     * @throws PatternSyntaxException
+     *             If the expression's syntax is invalid
+     */
+    public void setPattern(String regexPattern) {
+        this.p = Pattern.compile(regexPattern);
+    }
+
     public boolean isValid(String text) {
         return p.matcher(text).matches();
     }
Index: wtk/src/pivot/wtk/text/validation/Validator.java
===================================================================
--- wtk/src/pivot/wtk/text/validation/Validator.java    (revision 758676)
+++ wtk/src/pivot/wtk/text/validation/Validator.java    (working copy)
@@ -14,8 +14,15 @@
 package pivot.wtk.text.validation;
 
 /**
- * Validation interface for TextInput widget.
- *
+ * Validation interface for {...@link pivot.wtk.TextInput} widget.
+ * 
+ * Allows the programmer to specify various constraints on the data in the
+ * TextInput.
+ * 
+ * This is indicated visually to the user (a red background would be typical),
+ * and events are fired by the TextInput if the programmer wishes to take
+ * further action.
+ * 
  * @author Noel Grandin
  */
 public interface Validator {

Reply via email to