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));