📄 processstart.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 + -