⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aenv.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		}
		b.setText(text);
	}   //  setTextMnemonic

	/**
	 *  Get Mnemonic character from text.
	 *  @param text text with "&"
	 *  @return Mnemonic or 0
	 */
	public static char getMnemonic (String text)
	{
		int pos = text.indexOf("&");
		if (pos != -1)					//	We have a nemonic
			return text.charAt(pos+1);
		return 0;
	}   //  getMnemonic

	/*************************************************************************/

	/**
	 *  Print Action and Input Map for component
	 *
	 * @param comp  Component with ActionMap
	 */
	public static void printActionInputMap (JComponent comp)
	{
		int ll = 10;     //  log level
		if (Log.getTraceLevel() < ll)
			return;
		//
		Log.trace(ll-1, "ActionMap for Component", comp.toString());
		ActionMap am = comp.getActionMap();
		Object[] amKeys = am.allKeys(); //  including Parents
		for (int i = 0; i < amKeys.length; i++)
		{
			Action a = am.get(amKeys[i]);

			StringBuffer sb = new StringBuffer("Name=");
			sb.append(a.getValue(Action.NAME))
				.append(", Acc=").append(a.getValue(Action.ACCELERATOR_KEY))
				.append(", Mem=").append(a.getValue(Action.MNEMONIC_KEY))
				.append(" - ").append(a.getValue(Action.SHORT_DESCRIPTION));
			if (a.getValue(Action.ACTION_COMMAND_KEY) == null)
				Log.trace(ll, a.toString());
			else
				Log.trace(ll, a.getValue(Action.ACTION_COMMAND_KEY).toString(),
					sb.toString());
		}
		//
		Log.trace(ll-1, "InputMap for Component ", comp.toString());
		InputMap im = comp.getInputMap();
		KeyStroke[] kStrokes = im.allKeys();
		if (kStrokes != null)
		{
			for (int i = 0; i < kStrokes.length; i++)
			{
				Log.trace(ll, kStrokes[i].toString(),
					im.get(kStrokes[i]).toString());
			}
		}
		//
		Log.trace(ll-1, "InputMap for Component When Focused ", comp.toString());
		im = comp.getInputMap(JComponent.WHEN_FOCUSED);
		kStrokes = im.allKeys();
		if (kStrokes != null)
		{
			for (int i = 0; i < kStrokes.length; i++)
			{
				Log.trace(ll, kStrokes[i].toString(),
					im.get(kStrokes[i]).toString());
			}
		}
		Log.trace(ll-1, "InputMap for Component When Focused in Window", comp.toString());
		im = comp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
		kStrokes = im.allKeys();
		if (kStrokes != null)
		{
			for (int i = 0; i < kStrokes.length; i++)
			{
				Log.trace(ll, kStrokes[i].toString(),
					im.get(kStrokes[i]).toString());
			}
		}
		Log.trace(ll-1, "InputMap for Component When Ancestor ", comp.toString());
		im = comp.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
		kStrokes = im.allKeys();
		if (kStrokes != null)
		{
			for (int i = 0; i < kStrokes.length; i++)
			{
				Log.trace(ll, kStrokes[i].toString(),
					im.get(kStrokes[i]).toString());
			}
		}
	}   //  printActionInputMap

	/*************************************************************************/

	/**
	 *	Exit System
	 *  @param status System exit status (usually 0 for no error)
	 */
	public static void exit (int status)
	{
		if (s_server != null)
		{
			try
			{
				s_server.remove();
			}
			catch (Exception ex)
			{
			}
		}
		Env.exitEnv(status);
	}	//	exit


	/*************************************************************************/

	/**	Server Re-tries		*/
	private static int 		s_serverTries = 0;
	/**	Server Session		*/
	private static Server	s_server = null;

	/**
	 *  Is AppsServer Active ?
	 *  @return true if active
	 */
	public static boolean isServerActive()
	{
		boolean ok = CConnection.get().isAppsServerOK(false);
		if (ok)
		{
			s_serverTries = 0;
			return true;
		}
		if (s_serverTries > 2)
			return false;

		//	Try to connect
		Logger root = Logger.getRootLogger();
		Level level = root.getLevel();
		root.setLevel(Level.OFF);
		try
		{
			s_serverTries++;
			Log.trace(Log.l3_Util, "AEnv.isServerActive - try #" + s_serverTries);
			ok = CConnection.get().isAppsServerOK(true);
		}
		catch (Exception ex)
		{
			ok = false;
			s_server = null;
		}
		Logger.getRootLogger().setLevel(level);
		//
		return ok;
	}   //  isServerActive

	/**
	 *  Get Server Version
	 *  @return Apps Server Version
	 *  @see ALogin#checkVersion
	 */
	public static String getServerVersion ()
	{
		return CConnection.get().getServerVersion();
	}   //  getServerVersion

	/**
	 * 	Get Server
	 * 	@return Server
	 */
	private static Server getServer()
	{
		if (s_server == null)
		{
			try
			{
				InitialContext ic = CConnection.get().getInitialContext (true);
				ServerHome serverHome = (ServerHome)ic.lookup (ServerHome.JNDI_NAME);
				if (serverHome != null)
					s_server = serverHome.create();
			}
			catch (Exception ex)
			{
				Log.error("AEnv.getServer", ex);
			}
		}
		return s_server;
	}	//	getServer

	/**
	 *  Get Window Model
	 *
	 *  @param WindowNo  Window No
	 *  @param AD_Window_ID window
	 *  @param AD_Menu_ID menu
	 *  @return Model Window Value Obkect
	 */
	public static MWindowVO getMWindowVO (int WindowNo, int AD_Window_ID, int AD_Menu_ID)
	{
		Log.trace(Log.l2_Sub, "AEnv.getWindowVO", "Window=" + WindowNo + ", AD_Window_ID=" + AD_Window_ID);
		MWindowVO mWindowVO = null;
		//  try to get from Server when enabled
		if (Ini.getPropertyBool(Ini.P_OBJECTS) && isServerActive())
		{
			Log.trace(Log.l3_Util, "AEnv.getWindowVO", "trying server");
			try
			{
				Server server = getServer();
				if (server != null)
				{
					mWindowVO = server.getWindowVO(Env.getCtx(), WindowNo, AD_Window_ID, AD_Menu_ID);
					Log.trace(Log.l3_Util, "AEnv.getWindowVO", "from Server: success");
				}
			}
			catch (RemoteException e)
			{
				Log.error("AEnv.getWindowVO (RE) " + e);
				mWindowVO = null;
				s_server = null;
			}
			catch (Exception e)
			{
				Log.error("AEnv.getWindowVO " + e);
				mWindowVO = null;
				s_server = null;
			}
			catch (Throwable t)
			{
				Log.error("AEnv.getWindowVO - " + t);
				mWindowVO = null;
				s_server = null;
			}
		}

		//  Create Window Model on Client
		if (mWindowVO == null)
		{
			Log.trace(Log.l3_Util, "AEnv.getWindowVO", "create local");
			mWindowVO = MWindowVO.create (Env.getCtx(), WindowNo, AD_Window_ID, AD_Menu_ID);
		}
		//  Check (remote) context
		else if (!mWindowVO.ctx.equals(Env.getCtx()))
		{
			//  Remote Context is called by value, not reference
			//  Add Window properties to context
			Enumeration keyEnum = mWindowVO.ctx.keys();
			while (keyEnum.hasMoreElements())
			{
				String key = (String)keyEnum.nextElement();
				if (key.startsWith(WindowNo+"|"))
				{
					String value = mWindowVO.ctx.getProperty (key);
					Env.setContext(Env.getCtx(), key, value);
				}
			}
			//  Sync Context
			mWindowVO.setCtx(Env.getCtx());
		}
		return mWindowVO;
	}   //  getWindow

	/**
	 *  Post Immediate
	 *
	 *  @param  WindowNo 		window
	 *  @param  AD_Table_ID     Table ID of Document
	 *  @param  AD_Client_ID    Client ID of Document
	 *  @param  Record_ID       Record ID of this document
	 *  @param  force           force posting
	 *  @return true if success
	 */
	public static boolean postImmediate (int WindowNo, int AD_Client_ID, int AD_Table_ID, int Record_ID, boolean force)
	{
		Log.trace(Log.l2_Sub, "AEnv.postImmediate", "Window=" + WindowNo + ", AD_Table_ID=" + AD_Table_ID + "/" + Record_ID);

		Boolean result = null;
		String msg = null;
		//  try to get from Server when enabled
		if (isServerActive())
		{
			Log.trace(Log.l3_Util, "AEnv.postImmediate", "trying server");
			try
			{
				Server server = getServer();
				if (server != null)
				{
					result = new Boolean (server.postImmediate(AD_Table_ID, AD_Client_ID, Record_ID, force));
					Log.trace(Log.l3_Util, "AEnv.postImmediate", "from Server: success");
				}
				else
				{
					ADialog.error(WindowNo, null, "NoAppsServer", msg);
					return false;
				}
			}
			catch (RemoteException e)
			{
				Log.error("AEnv.postImmediate (RE)", e);
				msg = e.getMessage();
				result = null;
				s_server = null;
			}
			catch (Exception e)
			{
				Log.error("AEnv.postImmediate", e);
				msg = e.getMessage();
				result = null;
				s_server = null;
			}
		}
		else
		{
			ADialog.error(WindowNo, null, "NoAppsServer", msg);
			return false;
		}
		if (result == null)
		{
			ADialog.error(WindowNo, null, "PostServerError", msg);
			return false;
		}
		return result.booleanValue();
	}   //  postImmediate

}	//	AEnv

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -