svn commit: r884317 - /ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r884317 - /ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java

jleroux@apache.org
Author: jleroux
Date: Wed Nov 25 22:44:01 2009
New Revision: 884317

URL: http://svn.apache.org/viewvc?rev=884317&view=rev
Log:
Improve getCountryList: following Scott's remarks on dev ML.
Though now we don't check errors in the countries property list

Modified:
    ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java

Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java?rev=884317&r1=884316&r2=884317&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java (original)
+++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonWorkers.java Wed Nov 25 22:44:01 2009
@@ -20,6 +20,7 @@
 
 import java.util.Iterator;
 import java.util.List;
+import java.util.ListIterator;
 
 import javolution.util.FastList;
 
@@ -53,46 +54,35 @@
                 Debug.logError(e, "Cannot lookup Geo", module);
             }
         }
-        List<String> countriesList = FastList.newInstance();
-        List<String> countriesAvailable = StringUtil.split(UtilProperties.getPropertyValue("general.properties", "countries.geo.id.available"), ",");
-        if (countriesAvailable != null) {
-            for(String country : countriesAvailable) {
-                GenericValue geoCountry = null;
-                try {
-                    geoCountry = delegator.findOne("Geo", UtilMisc.toMap("geoId", country.trim()), true);
-                } catch (GenericEntityException e) {
-                    Debug.logError(e, "The country specified into countries.geo.id.available does not exists in Geo", module);
-                }
-                if (geoCountry != null) {
-                    countriesList.add(country);
-                }
-            }
+                
+        List<EntityExpr> exprs = UtilMisc.toList(EntityCondition.makeCondition("geoTypeId", EntityOperator.EQUALS, "COUNTRY"));
+        List<String> countriesAvailable = StringUtil.split(UtilProperties.getPropertyValue("general.properties", "countries.geo.id.available"), ",");              
+        if (UtilValidate.isNotEmpty(countriesAvailable)) {
+            // only available countries (we don't verify the list of geoId in countries.geo.id.available)
+            exprs.add(EntityCondition.makeCondition("geoId", EntityOperator.IN, countriesAvailable));
         }
+        
+        List<GenericValue> countriesList = FastList.newInstance();
         try {
-            List<EntityExpr> exprs = UtilMisc.toList(EntityCondition.makeCondition("geoTypeId", EntityOperator.EQUALS, "COUNTRY"));
-            // only available countries
-            if (UtilValidate.isNotEmpty(countriesList)) {
-                exprs.add(EntityCondition.makeCondition("geoId", EntityOperator.IN, countriesList));
-            }
-            List<GenericValue> countryGeoList = delegator.findList("Geo", EntityCondition.makeCondition(exprs), null, UtilMisc.toList("geoName"), null, true);
-            if (defaultGeo != null) {
-                geoList.add(defaultGeo);
-                /* remove the default geo to avoid double rows in the drop-down */
-                int idx = 0;
-                for (GenericValue geo : countryGeoList) {
-                    if (geo.get("geoId") != null && defaultGeo.get("geoId") != null &&
-                            geo.get("geoId").equals(defaultGeo.get("geoId"))) {
-                        countryGeoList.remove(idx);
-                    }
-                    idx += 1;
-                }
-                geoList.addAll(countryGeoList);
-            } else {
-                geoList = countryGeoList;
-            }
+            countriesList = delegator.findList("Geo", EntityCondition.makeCondition(exprs), null, UtilMisc.toList("geoName"), null, true);
         } catch (GenericEntityException e) {
             Debug.logError(e, "Cannot lookup Geo", module);
         }
+        if (defaultGeo != null) {
+            geoList.add(defaultGeo);
+            boolean removeDefaultGeo = false;
+            for (GenericValue country  : countriesList) {
+                if (country.get("geoId").equals(defaultGeo.get("geoId"))) {
+                    removeDefaultGeo = true;
+                }
+            }
+            if (removeDefaultGeo) {
+                countriesList.remove(0); // Remove default country to avoid double rows in drop-down, from 1st place to keep alphabetical order
+            }
+            geoList.addAll(countriesList);
+        } else {
+            geoList = countriesList;
+        }
         return geoList;
     }