You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2009/03/26 18:27:42 UTC

svn commit: r758759 - in /incubator/pivot/trunk: tutorials/src/pivot/tutorials/ wtk/src/pivot/wtk/text/validation/

Author: gbrown
Date: Thu Mar 26 17:27:39 2009
New Revision: 758759

URL: http://svn.apache.org/viewvc?rev=758759&view=rev
Log:
Commit Noel's recent updates to the text validation classes; add a validation example to the Kitchen Sink demo.

Modified:
    incubator/pivot/trunk/tutorials/src/pivot/tutorials/text.wtkx
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DecimalValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FormattedValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntRangeValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/RegexTextValidator.java
    incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/Validator.java

Modified: incubator/pivot/trunk/tutorials/src/pivot/tutorials/text.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/tutorials/src/pivot/tutorials/text.wtkx?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/tutorials/src/pivot/tutorials/text.wtkx (original)
+++ incubator/pivot/trunk/tutorials/src/pivot/tutorials/text.wtkx Thu Mar 26 17:27:39 2009
@@ -15,7 +15,9 @@
 limitations under the License.
 -->
 
-<FlowPane xmlns:wtkx="http://pivot-toolkit.org/wtkx/2008" xmlns="pivot.wtk">
+<FlowPane xmlns:wtkx="http://pivot-toolkit.org/wtkx/2008"
+    xmlns:validation="pivot.wtk.text.validation"
+    xmlns="pivot.wtk">
     <Border>
         <content>
             <FlowPane orientation="vertical" styles="{horizontalAlignment:'justify', padding:{top:2, left:4, bottom:12, right:4}}">
@@ -28,6 +30,14 @@
 	                        <TextInput Form.name="Password"
 	                            Form.flag="{messageType:'info', message:'This field has a maximum length of 12 characters.'}"
 	                            password="true" text="pivot" textSize="12" maximumLength="12" />
+                            <TextInput Form.name="Password" Form.flag="{messageType:'info', message:'This field only accepts numeric values from 0 through 9.'}"
+                                text="5" textSize="12" maximumLength="6">
+                                <validator>
+                                    <validation:RegexTextValidator>
+                                        <pattern><![CDATA[[0-9]]]></pattern>
+                                    </validation:RegexTextValidator>
+                                </validator>
+                            </TextInput>
                         </Form.Section>
                     </sections>
                 </Form>

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DecimalValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DecimalValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DecimalValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DecimalValidator.java Thu Mar 26 17:27:39 2009
@@ -18,10 +18,12 @@
 import java.text.ParseException;
 
 /**
+ * A validator for decimal values.
  *
  * @author Noel Grandin
  */
 public abstract class DecimalValidator extends FormattedValidator<NumberFormat> {
+
     protected DecimalValidator(DecimalFormat format) {
         super(format);
     }

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleRangeValidator.java Thu Mar 26 17:27:39 2009
@@ -14,17 +14,39 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A 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;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/DoubleValidator.java Thu Mar 26 17:27:39 2009
@@ -14,6 +14,7 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A validator for a double value.
  *
  * @author Noel Grandin
  */

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatRangeValidator.java Thu Mar 26 17:27:39 2009
@@ -14,17 +14,39 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A 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;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FloatValidator.java Thu Mar 26 17:27:39 2009
@@ -14,6 +14,7 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A validator for a float value.
  *
  * @author Noel Grandin
  */

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FormattedValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FormattedValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FormattedValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/FormattedValidator.java Thu Mar 26 17:27:39 2009
@@ -13,16 +13,20 @@
  */
 package pivot.wtk.text.validation;
 
+import java.text.Format;
 import java.text.ParsePosition;
 
 /**
+ * A validator for a {@link java.text.Format}'ed value.
+ * <p>
+ * 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;
+public abstract class FormattedValidator<F extends Format> implements Validator {
+    protected final F format;
 
-    protected FormattedValidator(TFormat format) {
+    protected FormattedValidator(F format) {
         this.format = format;
     }
 

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntRangeValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntRangeValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntRangeValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntRangeValidator.java Thu Mar 26 17:27:39 2009
@@ -14,17 +14,39 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A 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;

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/IntValidator.java Thu Mar 26 17:27:39 2009
@@ -14,6 +14,7 @@
 package pivot.wtk.text.validation;
 
 /**
+ * A validator for an int value.
  *
  * @author Noel Grandin
  */

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/RegexTextValidator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/RegexTextValidator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/RegexTextValidator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/RegexTextValidator.java Thu Mar 26 17:27:39 2009
@@ -14,13 +14,19 @@
 package pivot.wtk.text.validation;
 
 import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
 
 /**
+ * A 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();
     }

Modified: incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/Validator.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/Validator.java?rev=758759&r1=758758&r2=758759&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/Validator.java (original)
+++ incubator/pivot/trunk/wtk/src/pivot/wtk/text/validation/Validator.java Thu Mar 26 17:27:39 2009
@@ -14,11 +14,24 @@
 package pivot.wtk.text.validation;
 
 /**
- * Validation interface for TextInput widget.
+ * Validation interface for text components. Allows the programmer to specify
+ * constraints on text data.
+ * <p>
+ * 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 {
-    /** Is the text value valid? */
+    /**
+     * Determines if a text value is valid based on the rules of the
+     * validator.
+     *
+     * @param text
+     *
+     * @return
+     * <tt>true</tt> if the value is valid; <tt>false</tt>, otherwise.
+     */
     public boolean isValid(String text);
 }