Improved CountrySelect to include more countries. CLK-740

git-svn-id: https://svn.apache.org/repos/asf/click/trunk/click@1054365 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/documentation/docs/roadmap-changes.html b/documentation/docs/roadmap-changes.html
index 051b3a7..a3d4187 100644
--- a/documentation/docs/roadmap-changes.html
+++ b/documentation/docs/roadmap-changes.html
@@ -272,6 +272,11 @@
               [<a target="_blank" href="https://issues.apache.org/jira/browse/CLK-695">CLK-695</a>].

           </li>

           <li class="change">

+              Improved CountrySelect to include more countries by using Locale.getISOCountries().

+              This issue was raised and fixed by Lorenzo Simionato

+              [<a target="_blank" href="https://issues.apache.org/jira/browse/CLK-740">CLK-740</a>].

+          </li>

+          <li class="change">

               Fixed Control IDs to render underscores instead of periods

               [<a target="_blank" href="https://issues.apache.org/jira/browse/CLK-747">CLK-747</a>].

           </li>

diff --git a/extras/src/org/apache/click/extras/control/CountrySelect.java b/extras/src/org/apache/click/extras/control/CountrySelect.java
index 1146bfb..622c673 100644
--- a/extras/src/org/apache/click/extras/control/CountrySelect.java
+++ b/extras/src/org/apache/click/extras/control/CountrySelect.java
@@ -214,11 +214,14 @@
 
         Set<Option> countryList = new TreeSet<Option>(new OptionLabelComparator(getLocale()));
 
-        Locale[] availableLocales = Locale.getAvailableLocales();
+        String[] isoCountries = Locale.getISOCountries();
 
-        for (int i = 0; i < availableLocales.length; i++) {
-            final String iso = availableLocales[i].getCountry();
-            final String country = availableLocales[i].getDisplayCountry(getLocale());
+        Locale userLocale = getLocale();
+
+        for (int i = 0; i < isoCountries.length; i++) {
+            Locale tmpLocale = new Locale("en", isoCountries[i]);
+            final String iso = tmpLocale.getCountry();
+            final String country = tmpLocale.getDisplayCountry(userLocale);
 
             if (StringUtils.isNotEmpty(iso) && StringUtils.isNotEmpty(country)) {
                 countryList.add(new Option(iso, country));