From 8e244d6190e2c11f695e03691d6fc35f2ee06bdf Mon Sep 17 00:00:00 2001 From: teo_sarca Date: Fri, 30 Mar 2007 16:57:35 +0000 Subject: [PATCH] [ 1691388 ] VSetup: incorrect sort order for Currency and Country http://sourceforge.net/tracker/index.php?func=detail&aid=1691388&group_id=176962&atid=879332 --- client/src/org/compiere/apps/form/VSetup.java | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/client/src/org/compiere/apps/form/VSetup.java b/client/src/org/compiere/apps/form/VSetup.java index 2b3545c05f..f330569689 100644 --- a/client/src/org/compiere/apps/form/VSetup.java +++ b/client/src/org/compiere/apps/form/VSetup.java @@ -20,6 +20,8 @@ import java.awt.*; import java.awt.event.*; import java.io.*; import java.sql.*; +import java.util.Currency; +import java.util.Locale; import java.util.logging.*; import javax.swing.*; @@ -214,14 +216,21 @@ public class VSetup extends CPanel */ private void dynInit() { + // Using current locale for default values - teo_sarca [ 1691388 ] + Locale locale = Locale.getDefault(); + Currency currency = Currency.getInstance(locale); // Currency - String sql = "SELECT C_Currency_ID, Description FROM C_Currency ORDER BY 1"; // USD first + String sql = "SELECT C_Currency_ID, Description, ISO_Code FROM C_Currency ORDER BY 2"; // teo_sarca [ 1691388 ] try { Statement stmt = DB.createStatement(); ResultSet rs = stmt.executeQuery(sql); - while (rs.next()) + while (rs.next()) { fCurrency.addItem(new KeyNamePair(rs.getInt(1) , rs.getString(2))); + // Currency from locale will be the default currency - teo_sarca [ 1691388 ] + if (currency != null && currency.getCurrencyCode().equals(rs.getString(3))) + fCurrency.setSelectedIndex(fCurrency.getItemCount() - 1); + } rs.close(); stmt.close(); } @@ -229,16 +238,22 @@ public class VSetup extends CPanel { log.log(Level.SEVERE, "VSetup.dynInit -currency", e1); } - fCurrency.setSelectedIndex(0); // Country - sql = "SELECT C_Country_ID, Name FROM C_Country ORDER BY 1"; // US first + int C_Country_ID = 0; + sql = "SELECT C_Country_ID, Name, CountryCode FROM C_Country ORDER BY 2"; // teo_sarca [ 1691388 ] try { Statement stmt = DB.createStatement(); ResultSet rs = stmt.executeQuery(sql); - while (rs.next()) + while (rs.next()) { fCountry.addItem(new KeyNamePair(rs.getInt(1) , rs.getString(2))); + // Country from locale will be the default country - teo_sarca [ 1691388 ] + if (locale.getCountry().equals(rs.getString(3))) { + fCountry.setSelectedIndex(fCountry.getItemCount() - 1); + C_Country_ID = rs.getInt(1); + } + } rs.close(); stmt.close(); } @@ -246,17 +261,23 @@ public class VSetup extends CPanel { log.log(Level.SEVERE, "VSetup.dynInit -country", e1); } - fCountry.setSelectedIndex(0); // Region (optional) - sql = "SELECT C_Region_ID, Name FROM C_Region ORDER BY C_Country_ID, Name"; + sql = "SELECT C_Region_ID, Name, C_Country_ID FROM C_Region ORDER BY C_Country_ID, Name"; + boolean isSelected = false; try { fRegion.addItem(new KeyNamePair(0, " ")); Statement stmt = DB.createStatement(); ResultSet rs = stmt.executeQuery(sql); - while (rs.next()) + while (rs.next()) { fRegion.addItem(new KeyNamePair(rs.getInt(1) , rs.getString(2))); + // First region for selected country will be the default - teo_sarca [ 1691388 ] + if (!isSelected && rs.getInt(3) == C_Country_ID) { + fRegion.setSelectedIndex(fRegion.getItemCount() - 1); + isSelected = true; + } + } rs.close(); stmt.close(); } @@ -264,7 +285,6 @@ public class VSetup extends CPanel { log.log(Level.SEVERE, "VSetup.dynInit -region", e1); } - fRegion.setSelectedIndex(0); // General Listeners confirmPanel.addActionListener(this);