1 14 package org.compiere.apps; 15 16 import java.awt.*; 17 import java.awt.event.*; 18 import javax.swing.*; 19 import java.sql.*; 20 import java.util.*; 21 22 import org.compiere.util.*; 23 import org.compiere.process.*; 24 25 32 public class ProcessStart extends JFrame 33 implements ActionListener, ASyncProcess 34 { 35 38 public ProcessStart() 39 { 40 super(Msg.getMsg(Env.getCtx(), "StartReports")); 41 m_WindowNo = Env.createWindowNo (this); 42 43 setIconImage(org.compiere.Compiere.getImage16()); 44 loadProcess(); 45 try 46 { 47 jbInit(); 48 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 49 } 50 catch(Exception e) 51 { 52 Log.error("ProcessStart", e); 53 } 54 pack(); 55 setVisible(true); 56 } 58 private int m_WindowNo; 60 private boolean m_isLocked = false; 61 62 private JPanel mainPanel = new JPanel(); 63 private JList processList; 64 private BorderLayout mainLayout = new BorderLayout(); 65 private ConfirmPanel confirmPanel = new ConfirmPanel(true); 66 67 71 private void jbInit() throws Exception 72 { 73 mainPanel.setLayout(mainLayout); 74 mainPanel.setBorder(BorderFactory.createLoweredBevelBorder()); 75 processList.setPreferredSize(new Dimension(300, 150)); 76 this.getContentPane().add(mainPanel, BorderLayout.CENTER); 77 mainPanel.add(processList, BorderLayout.CENTER); 78 mainPanel.add(confirmPanel, BorderLayout.SOUTH); 79 confirmPanel.addActionListener(this); 81 } 83 86 public void dispose() 87 { 88 Env.clearWinContext(m_WindowNo); 89 removeAll(); 90 super.dispose(); 91 } 93 97 public void actionPerformed(ActionEvent e) 98 { 99 if (e.getActionCommand().equals(ConfirmPanel.A_OK)) 100 { 101 Process p = (Process )processList.getSelectedValue(); 102 startProcess (p.AD_Process_ID, p.Name, 0); 103 } 104 else if (e.getActionCommand().equals(ConfirmPanel.A_CANCEL)) 105 dispose(); 106 } 108 109 112 private void loadProcess() 113 { 114 String SQL = "SELECT * FROM AD_Process WHERE IsActive='Y'"; 115 if (!Env.getContext(Env.getCtx(), "#AD_User_ID").equals("0")) 116 SQL += " AND IsUserStartable='Y'"; 117 Vector v = new Vector(); 118 try 119 { 120 Statement stmt = DB.createStatement(); 121 ResultSet rs = stmt.executeQuery(SQL); 122 while (rs.next()) 123 { 124 String Name = rs.getString("Name"); 125 int ID = rs.getInt("AD_Process_ID"); 126 boolean IsReport = rs.getString("IsReport").equals("Y"); 127 Process p = new Process (ID, Name, IsReport); 128 v.addElement(p); 129 } 130 rs.close(); 131 stmt.close(); 132 } 133 catch (SQLException e) 134 { 135 Log.error("ProcessStart.loadProcess", e); 136 return; 137 } 138 processList = new JList(v); 139 } 141 147 private void startProcess (int AD_Process_ID, String Name, int entityID) 148 { 149 Log.trace(Log.l1_User, "ProcessStart.startProcess " + Name); 150 ProcessInfo pi = new ProcessInfo (Name, AD_Process_ID, entityID); 152 ProcessCtl.process (this, m_WindowNo, pi); } 155 156 161 public void lockUI (ProcessInfo pi) 162 { 163 confirmPanel.getOKButton().setEnabled(false); 164 this.setEnabled(false); 165 m_isLocked = true; 166 } 168 173 public void unlockUI (ProcessInfo pi) 174 { 175 ProcessInfoUtil.setLogFromDB(pi); 176 ADialog.info(m_WindowNo, this, pi.getTitle(), pi.getLogInfo()); 177 confirmPanel.getOKButton().setEnabled(false); 179 this.setEnabled(true); 180 m_isLocked = false; 181 } 183 187 public boolean isUILocked() 188 { 189 return m_isLocked; 190 } 192 197 public void executeASync (ProcessInfo pi) 198 { 199 Log.trace(Log.l3_Util, "ProcessStart.executeASync"); 200 } 202 203 204 207 class Process 208 { 209 public Process(int AD_Process_ID, String Name, boolean IsReport) 210 { 211 this.AD_Process_ID = AD_Process_ID; 212 this.Name = Name; 213 this.IsReport = IsReport; 214 } 216 public int AD_Process_ID; 217 public String Name; 218 public boolean IsReport; 219 220 public String toString() 221 { 222 return Name; 223 } 224 } 225 } | Popular Tags |