📄 env.java
字号:
}
return 0;
} // getContextAsInt
/**
* Get Context and convert it to an integer (0 if error)
* @param ctx context
* @param WindowNo window no
* @param context context key
* @return value or 0
*/
public static int getContextAsInt(Properties ctx, int WindowNo, String context)
{
String s = getContext(ctx, WindowNo, context, false);
if (s.length() == 0)
return 0;
//
try
{
return Integer.parseInt(s);
}
catch (NumberFormatException e)
{
s_log.log(Level.SEVERE, "(" + context + ") = " + s, e);
}
return 0;
} // getContextAsInt
/**
* Get Context and convert it to an integer (0 if error)
* @param ctx context
* @param WindowNo window no
* @param TabNo tab no
* @param context context key
* @return value or 0
*/
public static int getContextAsInt (Properties ctx, int WindowNo, int TabNo, String context)
{
String s = getContext(ctx, WindowNo, TabNo, context);
if (s.length() == 0)
return 0;
//
try
{
return Integer.parseInt(s);
}
catch (NumberFormatException e)
{
s_log.log(Level.SEVERE, "(" + context + ") = " + s, e);
}
return 0;
} // getContextAsInt
/**
* Is AutoCommit
* @param ctx context
* @return true if auto commit
*/
public static boolean isAutoCommit (Properties ctx)
{
if (ctx == null)
throw new IllegalArgumentException ("Require Context");
String s = getContext(ctx, "AutoCommit");
if (s != null && s.equals("Y"))
return true;
return false;
} // isAutoCommit
/**
* Is Window AutoCommit (if not set use default)
* @param ctx context
* @param WindowNo window no
* @return true if auto commit
*/
public static boolean isAutoCommit (Properties ctx, int WindowNo)
{
if (ctx == null)
throw new IllegalArgumentException ("Require Context");
String s = getContext(ctx, WindowNo, "AutoCommit", false);
if (s != null)
{
if (s.equals("Y"))
return true;
else
return false;
}
return isAutoCommit(ctx);
} // isAutoCommit
/**
* Is Auto New Record
* @param ctx context
* @return true if auto new
*/
public static boolean isAutoNew (Properties ctx)
{
if (ctx == null)
throw new IllegalArgumentException ("Require Context");
String s = getContext(ctx, "AutoNew");
if (s != null && s.equals("Y"))
return true;
return false;
} // isAutoNew
/**
* Is Window Auto New Record (if not set use default)
* @param ctx context
* @param WindowNo window no
* @return true if auto new record
*/
public static boolean isAutoNew (Properties ctx, int WindowNo)
{
if (ctx == null)
throw new IllegalArgumentException ("Require Context");
String s = getContext(ctx, WindowNo, "AutoNew", false);
if (s != null)
{
if (s.equals("Y"))
return true;
else
return false;
}
return isAutoNew(ctx);
} // isAutoNew
/**
* Is Sales Order Trx
* @param ctx context
* @return true if SO (default)
*/
public static boolean isSOTrx (Properties ctx)
{
String s = getContext(ctx, "IsSOTrx");
if (s != null && s.equals("N"))
return false;
return true;
} // isSOTrx
/**
* Is Sales Order Trx
* @param ctx context
* @param WindowNo window no
* @return true if SO (default)
*/
public static boolean isSOTrx (Properties ctx, int WindowNo)
{
String s = getContext(ctx, WindowNo, "IsSOTrx", true);
if (s != null && s.equals("N"))
return false;
return true;
} // isSOTrx
/**
* Get Context and convert it to a Timestamp
* if error return today's date
* @param ctx context
* @param context context key
* @return Timestamp
*/
public static Timestamp getContextAsDate(Properties ctx, String context)
{
return getContextAsDate(ctx, 0, context);
} // getContextAsDate
/**
* Get Context and convert it to a Timestamp
* if error return today's date
* @param ctx context
* @param WindowNo window no
* @param context context key
* @return Timestamp
*/
public static Timestamp getContextAsDate(Properties ctx, int WindowNo, String context)
{
if (ctx == null || context == null)
throw new IllegalArgumentException ("Require Context");
String s = getContext(ctx, WindowNo, context, false);
// JDBC Format YYYY-MM-DD example 2000-09-11 00:00:00.0
if (s == null || s.equals(""))
{
s_log.log(Level.SEVERE, "No value for: " + context);
return new Timestamp(System.currentTimeMillis());
}
// timestamp requires time
if (s.trim().length() == 10)
s = s.trim() + " 00:00:00.0";
else if (s.indexOf('.') == -1)
s = s.trim() + ".0";
return Timestamp.valueOf(s);
} // getContextAsDate
/**
* Get Login AD_Client_ID
* @param ctx context
* @return login AD_Client_ID
*/
public static int getAD_Client_ID (Properties ctx)
{
return Env.getContextAsInt(ctx, "#AD_Client_ID");
} // getAD_Client_ID
/**
* Get Login AD_Org_ID
* @param ctx context
* @return login AD_Org_ID
*/
public static int getAD_Org_ID (Properties ctx)
{
return Env.getContextAsInt(ctx, "#AD_Org_ID");
} // getAD_Client_ID
/**
* Get Login AD_User_ID
* @param ctx context
* @return login AD_User_ID
*/
public static int getAD_User_ID (Properties ctx)
{
return Env.getContextAsInt(ctx, "#AD_User_ID");
} // getAD_User_ID
/**
* Get Login AD_Role_ID
* @param ctx context
* @return login AD_Role_ID
*/
public static int getAD_Role_ID (Properties ctx)
{
return Env.getContextAsInt(ctx, "#AD_Role_ID");
} // getAD_Role_ID
/**************************************************************************
* Get Preference.
* <pre>
* 0) Current Setting
* 1) Window Preference
* 2) Global Preference
* 3) Login settings
* 4) Accounting settings
* </pre>
* @param ctx context
* @param AD_Window_ID window no
* @param context Entity to search
* @param system System level preferences (vs. user defined)
* @return preference value
*/
public static String getPreference (Properties ctx, int AD_Window_ID, String context, boolean system)
{
if (ctx == null || context == null)
throw new IllegalArgumentException ("Require Context");
String retValue = null;
//
if (!system) // User Preferences
{
retValue = ctx.getProperty("P"+AD_Window_ID+"|"+context);// Window Pref
if (retValue == null)
retValue = ctx.getProperty("P|"+context); // Global Pref
}
else // System Preferences
{
retValue = ctx.getProperty("#"+context); // Login setting
if (retValue == null)
retValue = ctx.getProperty("$"+context); // Accounting setting
}
//
return (retValue == null ? "" : retValue);
} // getPreference
/**************************************************************************
* Language issues
*/
/** Context Language identifier */
static public final String LANGUAGE = "#AD_Language";
/**
* Check Base Language
* @param ctx context
* @param tableName table to be translated
* @return true if base language and table not translated
*/
public static boolean isBaseLanguage (Properties ctx, String tableName)
{
/**
if (isBaseTranslation(tableName))
return Language.isBaseLanguage (getAD_Language(ctx));
else // No AD Table
if (!isMultiLingualDocument(ctx))
return true; // access base table
**/
return Language.isBaseLanguage (getAD_Language(ctx));
} // isBaseLanguage
/**
* Check Base Language
* @param AD_Language language
* @param tableName table to be translated
* @return true if base language and table not translated
*/
public static boolean isBaseLanguage (String AD_Language, String tableName)
{
/**
if (isBaseTranslation(tableName))
return Language.isBaseLanguage (AD_Language);
else // No AD Table
if (!isMultiLingualDocument(s_ctx)) // Base Context
return true; // access base table
**/
return Language.isBaseLanguage (AD_Language);
} // isBaseLanguage
/**
* Check Base Language
* @param language language
* @param tableName table to be translated
* @return true if base language and table not translated
*/
public static boolean isBaseLanguage (Language language, String tableName)
{
/**
if (isBaseTranslation(tableName))
return language.isBaseLanguage();
else // No AD Table
if (!isMultiLingualDocument(s_ctx)) // Base Context
return true; // access base table
**/
return language.isBaseLanguage();
} // isBaseLanguage
/**
* Table is in Base Translation (AD)
* @param tableName table
* @return true if base trl
*/
public static boolean isBaseTranslation (String tableName)
{
if (tableName.startsWith("AD")
|| tableName.equals("C_Country_Trl") )
return true;
return false;
} // isBaseTranslation
/**
* Do we have Multi-Lingual Documents.
* Set in DB.loadOrgs
* @param ctx context
* @return true if multi lingual documents
*/
public static boolean isMultiLingualDocument (Properties ctx)
{
return MClient.get(ctx).isMultiLingualDocument();
} // isMultiLingualDocument
/**
* Get System AD_Language
* @param ctx context
* @return AD_Language eg. en_US
*/
public static String getAD_Language (Properties ctx)
{
if (ctx != null)
{
String lang = getContext(ctx, LANGUAGE);
if (lang != null || lang.length() > 0)
return lang;
}
return Language.getBaseAD_Language();
} // getAD_Language
/**
* Get System Language
* @param ctx context
* @return Language
*/
public static Language getLanguage (Properties ctx)
{
if (ctx != null)
{
String lang = getContext(ctx, LANGUAGE);
if (lang != null || lang.length() > 0)
return Language.getLanguage(lang);
}
return Language.getBaseLanguage();
} // getLanguage
/**
* Get Login Language
* @param ctx context
* @return Language
*/
public static Language getLoginLanguage (Properties ctx)
{
return Language.getLoginLanguage();
} // getLanguage
/**
* Verify Language.
* Check that language is supported by the system
* @param ctx might be updated with new AD_Language
* @param language language
*/
public static void verifyLanguage (Properties ctx, Language language)
{
if (language.isBaseLanguage())
return;
boolean isSystemLanguage = false;
ArrayList<String> AD_Languages = new ArrayList<String>();
String sql = "SELECT DISTINCT AD_Language FROM AD_Message_Trl";
try
{
PreparedStatement pstmt = DB.prepareStatement(sql, null);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
String AD_Language = rs.getString(1);
if (AD_Language.equals(language.getAD_Language()))
{
isSystemLanguage = true;
break;
}
AD_Languages.add(AD_Language);
}
rs.close();
pstmt.close();
}
catch (SQLException e)
{
s_log.log(Level.SEVERE, "", e);
}
// Found it
if (isSystemLanguage)
return;
// No Language - set to System
if (AD_Languages.size() == 0)
{
s_log.warning ("NO System Language - Set to Base " + Language.getBaseAD_Language());
language.setAD_Language(Language.getBaseAD_Language());
return;
}
for (int i = 0; i < AD_Languages.size(); i++)
{
String AD_Language = (String)AD_Languages.get(i); // en_US
String lang = AD_Language.substring(0, 2); // en
//
String langCompare = language.getAD_Language().substring(0, 2);
if (lang.equals(langCompare))
{
s_log.fine("Found similar Language " + AD_Language);
language.setAD_Language(AD_Language);
return;
}
}
// We found same language
// if (!"0".equals(Msg.getMsg(AD_Language, "0")))
s_log.warning ("Not System Language=" + language
+ " - Set to Base Language " + Language.getBaseAD_Language());
language.setAD_Language(Language.getBaseAD_Language());
} // verifyLanguage
/**************************************************************************
* Get Context as String array with format: key == value
* @param ctx context
* @return context string
*/
public static String[] getEntireContext(Properties ctx)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -