[ 2471978 ] Window and tab label cache using the first login locale.
Remove unuse method copy from swing client, not applicable for zk client.
This commit is contained in:
parent
3c96188fed
commit
de943b693c
|
@ -27,7 +27,9 @@ import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
@ -42,7 +44,6 @@ import org.compiere.interfaces.Server;
|
||||||
import org.compiere.model.GridWindowVO;
|
import org.compiere.model.GridWindowVO;
|
||||||
import org.compiere.model.Lookup;
|
import org.compiere.model.Lookup;
|
||||||
import org.compiere.model.MQuery;
|
import org.compiere.model.MQuery;
|
||||||
import org.compiere.model.MRole;
|
|
||||||
import org.compiere.util.CCache;
|
import org.compiere.util.CCache;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
@ -191,43 +192,6 @@ public final class AEnv
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Is Workflow Process view enabled.
|
|
||||||
* @return true if enabled
|
|
||||||
*/
|
|
||||||
public static boolean isWorkflowProcess ()
|
|
||||||
{
|
|
||||||
|
|
||||||
if (s_workflow == null)
|
|
||||||
{
|
|
||||||
s_workflow = Boolean.FALSE;
|
|
||||||
int AD_Table_ID = 645; // AD_WF_Process
|
|
||||||
if (MRole.getDefault().isTableAccess (AD_Table_ID, true)) // RO
|
|
||||||
s_workflow = Boolean.TRUE;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AD_Table_ID = 644; // AD_WF_Activity
|
|
||||||
if (MRole.getDefault().isTableAccess (AD_Table_ID, true)) // RO
|
|
||||||
s_workflow = Boolean.TRUE;
|
|
||||||
else
|
|
||||||
log.config(s_workflow.toString());
|
|
||||||
}
|
|
||||||
// Get Window
|
|
||||||
if (s_workflow.booleanValue())
|
|
||||||
{
|
|
||||||
s_workflow_Window_ID = DB.getSQLValue (null,
|
|
||||||
"SELECT AD_Window_ID FROM AD_Table WHERE AD_Table_ID=?", AD_Table_ID);
|
|
||||||
if (s_workflow_Window_ID == 0)
|
|
||||||
s_workflow_Window_ID = 297; // fallback HARDCODED
|
|
||||||
// s_workflow = Boolean.FALSE;
|
|
||||||
log.config(s_workflow + ", Window=" + s_workflow_Window_ID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return s_workflow.booleanValue();
|
|
||||||
|
|
||||||
} // isWorkflowProcess
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start Workflow Process Window
|
* Start Workflow Process Window
|
||||||
* @param AD_Table_ID optional table
|
* @param AD_Table_ID optional table
|
||||||
|
@ -235,13 +199,13 @@ public final class AEnv
|
||||||
*/
|
*/
|
||||||
public static void startWorkflowProcess (int AD_Table_ID, int Record_ID)
|
public static void startWorkflowProcess (int AD_Table_ID, int Record_ID)
|
||||||
{
|
{
|
||||||
if (s_workflow_Window_ID == 0)
|
if (s_workflow_Window_ID <= 0)
|
||||||
{
|
{
|
||||||
int AD_Window_ID = DB.getSQLValue(null, "SELECT AD_Window_ID FROM AD_Window WHERE Name = 'Workflow Process'");
|
int AD_Window_ID = DB.getSQLValue(null, "SELECT AD_Window_ID FROM AD_Window WHERE Name = 'Workflow Process'");
|
||||||
s_workflow_Window_ID = AD_Window_ID;
|
s_workflow_Window_ID = AD_Window_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_workflow_Window_ID == 0)
|
if (s_workflow_Window_ID <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
MQuery query = new MQuery();
|
MQuery query = new MQuery();
|
||||||
|
@ -253,9 +217,7 @@ public final class AEnv
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
/** Workflow Menu */
|
/** Workflow Window */
|
||||||
private static Boolean s_workflow = null;
|
|
||||||
/** Workflow Menu */
|
|
||||||
private static int s_workflow_Window_ID = 0;
|
private static int s_workflow_Window_ID = 0;
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(AEnv.class);
|
private static CLogger log = CLogger.getCLogger(AEnv.class);
|
||||||
|
@ -280,8 +242,7 @@ public final class AEnv
|
||||||
} // getServerVersion
|
} // getServerVersion
|
||||||
|
|
||||||
/** Window Cache */
|
/** Window Cache */
|
||||||
private static CCache<Integer,GridWindowVO> s_windows
|
private static Map<String, CCache<Integer,GridWindowVO>> windowCache = new HashMap<String, CCache<Integer,GridWindowVO>>();
|
||||||
= new CCache<Integer,GridWindowVO>("AD_Window", 10);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Window Model
|
* Get Window Model
|
||||||
|
@ -296,13 +257,21 @@ public final class AEnv
|
||||||
|
|
||||||
log.config("Window=" + WindowNo + ", AD_Window_ID=" + AD_Window_ID);
|
log.config("Window=" + WindowNo + ", AD_Window_ID=" + AD_Window_ID);
|
||||||
GridWindowVO mWindowVO = null;
|
GridWindowVO mWindowVO = null;
|
||||||
|
String locale = Env.getLanguage(Env.getCtx()).getLocale().toString();
|
||||||
if (AD_Window_ID != 0 && Ini.isCacheWindow()) // try cache
|
if (AD_Window_ID != 0 && Ini.isCacheWindow()) // try cache
|
||||||
{
|
{
|
||||||
mWindowVO = s_windows.get(AD_Window_ID);
|
synchronized (windowCache)
|
||||||
if (mWindowVO != null)
|
|
||||||
{
|
{
|
||||||
mWindowVO = mWindowVO.clone(WindowNo);
|
CCache<Integer,GridWindowVO> cache = windowCache.get(locale);
|
||||||
log.info("Cached=" + mWindowVO);
|
if (cache != null)
|
||||||
|
{
|
||||||
|
mWindowVO = cache.get(AD_Window_ID);
|
||||||
|
if (mWindowVO != null)
|
||||||
|
{
|
||||||
|
mWindowVO = mWindowVO.clone(WindowNo);
|
||||||
|
log.info("Cached=" + mWindowVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,7 +281,18 @@ public final class AEnv
|
||||||
log.config("create local");
|
log.config("create local");
|
||||||
mWindowVO = GridWindowVO.create (Env.getCtx(), WindowNo, AD_Window_ID, AD_Menu_ID);
|
mWindowVO = GridWindowVO.create (Env.getCtx(), WindowNo, AD_Window_ID, AD_Menu_ID);
|
||||||
if (mWindowVO != null)
|
if (mWindowVO != null)
|
||||||
s_windows.put(AD_Window_ID, mWindowVO);
|
{
|
||||||
|
synchronized (windowCache)
|
||||||
|
{
|
||||||
|
CCache<Integer,GridWindowVO> cache = windowCache.get(locale);
|
||||||
|
if (cache == null)
|
||||||
|
{
|
||||||
|
cache = new CCache<Integer, GridWindowVO>("AD_Window", 10);
|
||||||
|
windowCache.put(locale, cache);
|
||||||
|
}
|
||||||
|
cache.put(AD_Window_ID, mWindowVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
} // from Client
|
} // from Client
|
||||||
if (mWindowVO == null)
|
if (mWindowVO == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
Loading…
Reference in New Issue