Return-Path: X-Original-To: apmail-incubator-flex-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-flex-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 983E89A86 for ; Wed, 7 Mar 2012 02:15:17 +0000 (UTC) Received: (qmail 50198 invoked by uid 500); 7 Mar 2012 02:15:17 -0000 Delivered-To: apmail-incubator-flex-commits-archive@incubator.apache.org Received: (qmail 50033 invoked by uid 500); 7 Mar 2012 02:15:16 -0000 Mailing-List: contact flex-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: flex-dev@incubator.apache.org Delivered-To: mailing list flex-commits@incubator.apache.org Received: (qmail 50020 invoked by uid 99); 7 Mar 2012 02:15:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Mar 2012 02:15:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Mar 2012 02:15:14 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 7DE8E2388865; Wed, 7 Mar 2012 02:14:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1297838 - in /incubator/flex/whiteboard/jmclean/validators/src: mx/validators/PostCodeValidator.as tests/PostCodeValidatorTests.as Date: Wed, 07 Mar 2012 02:14:54 -0000 To: flex-commits@incubator.apache.org From: jmclean@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120307021454.7DE8E2388865@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jmclean Date: Wed Mar 7 02:14:54 2012 New Revision: 1297838 URL: http://svn.apache.org/viewvc?rev=1297838&view=rev Log: Added suggestFormat method (which provides a suggested postcode format based on user supplied or current locale) Only a limited number of locales are supported (current SDK locales and CA) Modified: incubator/flex/whiteboard/jmclean/validators/src/mx/validators/PostCodeValidator.as incubator/flex/whiteboard/jmclean/validators/src/tests/PostCodeValidatorTests.as Modified: incubator/flex/whiteboard/jmclean/validators/src/mx/validators/PostCodeValidator.as URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/jmclean/validators/src/mx/validators/PostCodeValidator.as?rev=1297838&r1=1297837&r2=1297838&view=diff ============================================================================== --- incubator/flex/whiteboard/jmclean/validators/src/mx/validators/PostCodeValidator.as (original) +++ incubator/flex/whiteboard/jmclean/validators/src/mx/validators/PostCodeValidator.as Wed Mar 7 02:14:54 2012 @@ -20,8 +20,11 @@ package mx.validators { +import flash.globalization.LocaleID; +import flash.globalization.StringTools; + import mx.resources.IResourceManager; -import mx.resources.ResourceManager; +import mx.resources.ResourceManager; [ResourceBundle("validators")] @@ -177,7 +180,7 @@ public class PostCodeValidator extends V count:Number(invalidFormat) + Number(invalidChar) + Number(wrongLength)*1.5}) } - if (validator && validator.extraValidation) + if (validator && validator.extraValidation != null) { var extraError:String = validator.extraValidation(postCode); @@ -560,6 +563,87 @@ public class PostCodeValidator extends V else return PostCodeValidator.validatePostCode(this, String(value), null); } + + /** + * Sets the suggested format for postcodes for a + * given locale. + * + * If no locale is suplied the default locale is used. + * + * Currenly only a limited set of locales are supported. + * + * @return The suggested format or an empty array if the + * locale is not supported. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @productversion ApacheFlex 4.8 + */ + public function suggestFormat(locale:String = null):Array { + var localeID:LocaleID; + var region:String; + + if (!locale) + { + var tool:StringTools = new StringTools(LocaleID.DEFAULT); + localeID = new LocaleID(tool.actualLocaleIDName); + } + else + { + localeID = new LocaleID(locale); + } + region = localeID.getRegion(); + + formats = []; + + switch (region) { + case "AU": + case "DK": + case "NO": + formats = ["NNNN"]; + break; + case "BR": + formats = ["NNNNN-NNN"]; + break; + case "CN": + case "DE": + formats = ["NNNNNN"]; + break; + case "CA": + formats = ["ANA NAN"]; + break; + case "ES": + case "FI": + case "FR": + case "IT": + case "TW": + formats = ["NNNNN"]; + break; + case "GB": + formats = ["AN NAA", "ANN NAA", "AAN NAA", "ANA NAA", "AANN NAA", "AANA NAA"]; + break; + case "JP": + formats = ["NNNNNNN","NNN-NNNN"]; + break; + case "KR": + formats = ["NNNNNN","NNN-NNN"]; + break; + case "NL": + formats = ["NNNN AA"]; + break; + case "RU": + formats = ["NNNNNN"]; + break; + case "SE": + formats = ["NNNNN","NNN NN"]; + break; + case "US": + formats = ["NNNNN", "NNNNN-NNNN"]; + break; + } + + return formats; + } } } Modified: incubator/flex/whiteboard/jmclean/validators/src/tests/PostCodeValidatorTests.as URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/jmclean/validators/src/tests/PostCodeValidatorTests.as?rev=1297838&r1=1297837&r2=1297838&view=diff ============================================================================== --- incubator/flex/whiteboard/jmclean/validators/src/tests/PostCodeValidatorTests.as (original) +++ incubator/flex/whiteboard/jmclean/validators/src/tests/PostCodeValidatorTests.as Wed Mar 7 02:14:54 2012 @@ -514,6 +514,34 @@ package tests assertTrue("AU Error", validator.wrongFormatError == resourcesAU.content.wrongFormatPostcodeError); assertTrue("AU Error", validator.wrongLengthError == resourcesAU.content.wrongLengthPostcodeError); } + + [Test] + public function suggestedFormat():void { + validator.suggestFormat("en_AU"); + assertTrue("Australian format", validator.format == "NNNN"); + + validator.suggestFormat("en-CA"); + assertTrue("Australian format", validator.format == "ANA NAN"); + + validator.suggestFormat("en_US"); + assertTrue("US format", validator.formats[0] == "NNNNN"); + assertTrue("US format", validator.formats[1] == "NNNNN-NNNN"); + + validator.suggestFormat("it_IT"); + assertTrue("IT format", validator.format == "NNNNN"); + + validator.suggestFormat("fr_CA"); + assertTrue("CA format", validator.format == "ANA NAN"); + validator.suggestFormat("en_CA"); + assertTrue("CA format", validator.format == "ANA NAN"); + + validator.suggestFormat("en_NZ"); // not known + assertTrue("NZ format not known", validator.format == null); + + // may set format (based on user locale) to anything just check no RTE + // and returns something + assertTrue("User locale format", validator.suggestFormat() != null) + } } } \ No newline at end of file