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

📄 processstart.java

📁 Java写的ERP系统
💻 JAVA
字号:
/******************************************************************************
 * The contents of this file are subject to the   Compiere License  Version 1.1
 * ("License"); You may not use this file except in compliance with the License
 * You may obtain a copy of the License at http://www.compiere.org/license.html
 * Software distributed under the License is distributed on an  "AS IS"  basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 * The Original Code is                  Compiere  ERP & CRM  Business Solution
 * The Initial Developer of the Original Code is Jorg Janke  and ComPiere, Inc.
 * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
 * created by ComPiere are Copyright (C) ComPiere, Inc.;   All Rights Reserved.
 * Contributor(s): ______________________________________.
 *****************************************************************************/
package org.compiere.apps;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;

import org.compiere.util.*;
import org.compiere.process.*;

/**
 *	User Start Reports & Processes directly		(from AMenu).
 *	Lists user startable processes and reports and starts tem via ProcessCtl
 *
 *  @author 	Jorg Janke
 *  @version 	$Id: ProcessStart.java,v 1.10 2003/02/15 06:31:42 jjanke Exp $
 */
public class ProcessStart extends JFrame
	implements ActionListener, ASyncProcess
{
	/**
	 *	Show executable Processes and Reports
	 */
	public ProcessStart()
	{
		super(Msg.getMsg(Env.getCtx(), "StartReports"));
		m_WindowNo = Env.createWindowNo (this);

		setIconImage(org.compiere.Compiere.getImage16());
		loadProcess();
		try
		{
			jbInit();
			setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		}
		catch(Exception e)
		{
			Log.error("ProcessStart", e);
		}
		pack();
		setVisible(true);
	}	//	ProcessStart

	//
	private int     m_WindowNo;
	private boolean	m_isLocked = false;

	private JPanel mainPanel = new JPanel();
	private JList processList;
	private BorderLayout mainLayout = new BorderLayout();
	private ConfirmPanel confirmPanel = new ConfirmPanel(true);

	/**
	 *	Static Frame Init
	 *  @throws Exception
	 */
	private void jbInit() throws Exception
	{
		mainPanel.setLayout(mainLayout);
		mainPanel.setBorder(BorderFactory.createLoweredBevelBorder());
		processList.setPreferredSize(new Dimension(300, 150));
		this.getContentPane().add(mainPanel, BorderLayout.CENTER);
		mainPanel.add(processList, BorderLayout.CENTER);
		mainPanel.add(confirmPanel, BorderLayout.SOUTH);
		//
		confirmPanel.addActionListener(this);
	}	//	jbInit

	/**
	 *	Close Window
	 */
	public void dispose()
	{
		Env.clearWinContext(m_WindowNo);
		removeAll();
		super.dispose();
	}	//	cancel

	/**
	 *	ActionListener
	 *  @param e event
	 */
	public void actionPerformed(ActionEvent e)
	{
		if (e.getActionCommand().equals(ConfirmPanel.A_OK))
		{
			Process p = (Process)processList.getSelectedValue();
			startProcess (p.AD_Process_ID, p.Name, 0);
		}
		else if (e.getActionCommand().equals(ConfirmPanel.A_CANCEL))
			dispose();
	}	//	actionPerformed


	/**
	 *	Load List
	 */
	private void loadProcess()
	{
		String SQL = "SELECT * FROM AD_Process WHERE IsActive='Y'";
		if (!Env.getContext(Env.getCtx(), "#AD_User_ID").equals("0"))
			SQL += " AND IsUserStartable='Y'";
		Vector v = new Vector();
		try
		{
			Statement stmt = DB.createStatement();
			ResultSet rs = stmt.executeQuery(SQL);
			while (rs.next())
			{
				String Name = rs.getString("Name");
				int ID = rs.getInt("AD_Process_ID");
				boolean IsReport = rs.getString("IsReport").equals("Y");
				Process p = new Process(ID, Name, IsReport);
				v.addElement(p);
			}
			rs.close();
			stmt.close();
		}
		catch (SQLException e)
		{
			Log.error("ProcessStart.loadProcess", e);
			return;
		}
		processList = new JList(v);
	}	//	loadProcess

	/**
	 *	Start Process
	 *  @param AD_Process_ID AD_Process_ID
	 *  @param Name Name
	 *  @param entityID ID
	 */
	private void startProcess (int AD_Process_ID, String Name, int entityID)
	{
		Log.trace(Log.l1_User, "ProcessStart.startProcess " + Name);
		//
		ProcessInfo pi = new ProcessInfo (Name, AD_Process_ID, entityID);
		ProcessCtl.process (this, m_WindowNo, pi);    //  calles lockUI,..
	}	//	startProcess


	/**
	 *  Lock User Interface
	 *  Called from the Worker before processing
	 *  @param pi process info
	 */
	public void lockUI (ProcessInfo pi)
	{
		confirmPanel.getOKButton().setEnabled(false);
		this.setEnabled(false);
		m_isLocked = true;
	}   //  lockUI

	/**
	 *  Unlock User Interface.
	 *  Called from the Worker when processing is done
	 *  @param pi process info
	 */
	public void unlockUI (ProcessInfo pi)
	{
		pi.setProcessLog ();
		ADialog.info(m_WindowNo, this, pi.Title, pi.LogInfo);
		//
		confirmPanel.getOKButton().setEnabled(false);
		this.setEnabled(true);
		m_isLocked = false;
	}   //  unlockUI

	/**
	 *  Is the UI locked (Internal method)
	 *  @return true, if UI is locked
	 */
	public boolean isUILocked()
	{
		return m_isLocked;
	}   //  isLoacked

	/**
	 *  Method to be executed async.
	 *  Called from the ASyncProcess worker
	 *  @param pi process info
	 */
	public void executeASync (ProcessInfo pi)
	{
		Log.trace(Log.l3_Util, "ProcessStart.executeASync");
	}   //  executeASync



	/**
	 *	Process Info
	 */
	class Process
	{
		public Process(int AD_Process_ID, String Name, boolean IsReport)
		{
			this.AD_Process_ID = AD_Process_ID;
			this.Name = Name;
			this.IsReport = IsReport;
		}	//	Process

		public int 		AD_Process_ID;
		public String	Name;
		public boolean	IsReport;

		public String toString()
		{
			return Name;
		}
	}
}	//	ProcessStart

⌨️ 快捷键说明

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