Fixed multi lingual reporting issue
This commit is contained in:
parent
fa6dafed7d
commit
6f2f78cd11
|
@ -131,7 +131,19 @@ public final class ProcessUtil {
|
|||
Class<?> processClass = null;
|
||||
//use context classloader if available
|
||||
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
||||
if (classLoader == null)
|
||||
if (classLoader != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
processClass = classLoader.loadClass(className);
|
||||
}
|
||||
catch (ClassNotFoundException ex)
|
||||
{
|
||||
log.log(Level.FINE, className, ex);
|
||||
}
|
||||
}
|
||||
if (processClass == null)
|
||||
{
|
||||
classLoader = ProcessUtil.class.getClassLoader();
|
||||
try
|
||||
{
|
||||
|
@ -143,6 +155,7 @@ public final class ProcessUtil {
|
|||
pi.setSummary ("ClassNotFound", true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (processClass == null) {
|
||||
pi.setSummary("No Instance for " + pi.getClassName(), true);
|
||||
|
|
|
@ -91,7 +91,7 @@ import org.w3c.dom.Element;
|
|||
* <li>https://sourceforge.net/tracker/?func=detail&aid=2947622&group_id=176962&atid=879332
|
||||
*/
|
||||
public abstract class PO
|
||||
implements Serializable, Comparator, Evaluatee
|
||||
implements Serializable, Comparator, Evaluatee, Cloneable
|
||||
{
|
||||
/**
|
||||
*
|
||||
|
@ -4009,4 +4009,46 @@ public abstract class PO
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object clone() throws CloneNotSupportedException {
|
||||
PO clone = (PO) super.clone();
|
||||
clone.m_trxName = null;
|
||||
if (m_custom != null)
|
||||
{
|
||||
clone.m_custom = new HashMap<String, String>();
|
||||
clone.m_custom.putAll(m_custom);
|
||||
}
|
||||
if (m_newValues != null)
|
||||
{
|
||||
clone.m_newValues = new Object[m_newValues.length];
|
||||
for(int i = 0; i < m_newValues.length; i++)
|
||||
{
|
||||
clone.m_newValues[i] = m_newValues[i];
|
||||
}
|
||||
}
|
||||
if (m_oldValues != null)
|
||||
{
|
||||
clone.m_oldValues = new Object[m_oldValues.length];
|
||||
for(int i = 0; i < m_oldValues.length; i++)
|
||||
{
|
||||
clone.m_oldValues[i] = m_oldValues[i];
|
||||
}
|
||||
}
|
||||
if (m_IDs != null)
|
||||
{
|
||||
clone.m_IDs = new Object[m_IDs.length];
|
||||
for(int i = 0; i < m_IDs.length; i++)
|
||||
{
|
||||
clone.m_IDs[i] = m_IDs[i];
|
||||
}
|
||||
}
|
||||
clone.p_ctx = Env.getCtx();
|
||||
clone.m_doc = null;
|
||||
clone.m_lobInfo = null;
|
||||
clone.m_attachment = null;
|
||||
clone.m_isReplication = false;
|
||||
return clone;
|
||||
}
|
||||
|
||||
|
||||
} // PO
|
||||
|
|
|
@ -29,6 +29,7 @@ import javax.sql.RowSet;
|
|||
|
||||
import org.compiere.model.MQuery;
|
||||
import org.compiere.model.MRole;
|
||||
import org.compiere.model.PO;
|
||||
import org.compiere.model.X_AD_PrintFormat;
|
||||
import org.compiere.util.CCache;
|
||||
import org.compiere.util.CLogger;
|
||||
|
@ -64,7 +65,7 @@ public class MPrintFormat extends X_AD_PrintFormat
|
|||
{
|
||||
super (ctx, AD_PrintFormat_ID, trxName);
|
||||
// Language=[Deutsch,Locale=de_DE,AD_Language=en_US,DatePattern=DD.MM.YYYY,DecimalPoint=false]
|
||||
m_language = Language.getLoginLanguage();
|
||||
m_language = Env.getLanguage(ctx);
|
||||
if (AD_PrintFormat_ID == 0)
|
||||
{
|
||||
setStandardHeaderFooter(true);
|
||||
|
@ -84,7 +85,7 @@ public class MPrintFormat extends X_AD_PrintFormat
|
|||
public MPrintFormat (Properties ctx, ResultSet rs, String trxName)
|
||||
{
|
||||
super(ctx, rs, trxName);
|
||||
m_language = Language.getLoginLanguage();
|
||||
m_language = Env.getLanguage(ctx);
|
||||
m_items = getItems();
|
||||
} // MPrintFormat
|
||||
|
||||
|
@ -823,6 +824,15 @@ public class MPrintFormat extends X_AD_PrintFormat
|
|||
else
|
||||
s_formats.put(key, pf);
|
||||
}
|
||||
|
||||
if (pf != null)
|
||||
{
|
||||
try {
|
||||
pf = pf.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
return pf;
|
||||
} // get
|
||||
|
||||
|
@ -929,6 +939,18 @@ public class MPrintFormat extends X_AD_PrintFormat
|
|||
return rowSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MPrintFormat clone() throws CloneNotSupportedException {
|
||||
MPrintFormat clone = (MPrintFormat) super.clone();
|
||||
clone.m_items = m_items == null ? null : new MPrintFormatItem[m_items.length];
|
||||
for(int i = 0; i < m_items.length; i++) {
|
||||
clone.m_items[i] = m_items[i];
|
||||
}
|
||||
clone.m_tFormat = m_tFormat;
|
||||
clone.m_language = Env.getLanguage(Env.getCtx());
|
||||
clone.m_translationViewLanguage = null;
|
||||
return clone;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* Test
|
||||
|
|
|
@ -368,7 +368,7 @@ public final class DisplayType
|
|||
{
|
||||
Language myLanguage = language;
|
||||
if (myLanguage == null)
|
||||
myLanguage = Language.getLoginLanguage();
|
||||
myLanguage = Env.getLanguage(Env.getCtx());
|
||||
//
|
||||
if ( pattern != null && pattern.length() > 0)
|
||||
{
|
||||
|
|
|
@ -1027,6 +1027,33 @@ public final class Env
|
|||
return Language.getLoginLanguage();
|
||||
} // getLanguage
|
||||
|
||||
public static ArrayList<String> getSupportedLanguages()
|
||||
{
|
||||
ArrayList<String> AD_Languages = new ArrayList<String>();
|
||||
String sql = "SELECT DISTINCT AD_Language FROM AD_Message_Trl";
|
||||
PreparedStatement pstmt = null;
|
||||
ResultSet rs = null;
|
||||
try
|
||||
{
|
||||
pstmt = DB.prepareStatement(sql, null);
|
||||
rs = pstmt.executeQuery();
|
||||
while (rs.next())
|
||||
{
|
||||
String AD_Language = rs.getString(1);
|
||||
AD_Languages.add(AD_Language);
|
||||
}
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
getLogger().log(Level.SEVERE, "", e);
|
||||
}
|
||||
finally {
|
||||
DB.close(rs, pstmt);
|
||||
rs = null; pstmt = null;
|
||||
}
|
||||
return AD_Languages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify Language.
|
||||
* Check that language is supported by the system
|
||||
|
|
Loading…
Reference in New Issue