import java.io.*; import java.beans.*; import java.net.URL; import java.text.*; import java.sql.*; import java.awt.*; import java.awt.Window; import java.awt.event.*; import javax.swing.*; import javax.swing.JOptionPane; import javax.swing.border.*; import javax.swing.plaf.*; import javax.swing.event.*; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JScrollPane; import javax.swing.DefaultListModel; import javax.swing.JTable; import javax.swing.table.*; import java.lang.*; import java.lang.System.*; import java.util.*; import java.util.List; import java.util.Vector; import java.util.ResourceBundle; public class ProE_WS_03 implements ListSelectionListener { public static void main(String[] arg){ new ProE_WS_03(); } public ProE_WS_03() { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }; container=new JFrame("ProI WorkSpaces"); container.addWindowListener(l); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=new Dimension((int)(screenSize.width/2),(int)(screenSize.height/2)); int x=(int)(frameSize.width/2); int y=(int)(frameSize.height/2); container.setBounds(x,y,frameSize.width,frameSize.height); container.getContentPane().setLayout( new BorderLayout() ); JPanel dbconn = new JPanel(); dbconn.setLayout(new BorderLayout()); dbconn.add(build_WSlist_Panel(), BorderLayout.NORTH); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout ( new FlowLayout(FlowLayout.CENTER) ); StartBut = new JButton("Run ProE From Selected/Shown WorkSpace"); StartBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ProE_Start(); }}); buttonPanel.add(StartBut); ExitBut = new JButton("EXIT"); ExitBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CancelPressed(); }}); buttonPanel.add(ExitBut); container.getContentPane().add(dbconn, BorderLayout.NORTH); container.getContentPane().add(buttonPanel, BorderLayout.SOUTH); container.pack(); container.setVisible(true); } public JPanel build_WSlist_Panel() { // Part Number Panel (JLabel(2), JTextArea & JTextField) JPanel WS_Jl_StgPanel = new JPanel(); WS_Jl_StgPanel.setLayout(new BorderLayout()); JLabel WS_Jl_StgLabel = new JLabel(" WorkSpaces: "); WS_Jl_StgPanel.add(WS_Jl_StgLabel, BorderLayout.NORTH); WSlistModel = new DefaultListModel(); WS_JList = new JList(WSlistModel); WS_JList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); WS_JList.addListSelectionListener(this); WStextScroller = new JScrollPane( WS_JList, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); WStextScroller.setPreferredSize(new Dimension(80, 160)); WS_Jl_StgPanel.add(WStextScroller); WS_Field = new JTextField(20); WS_Field.setEditable(false); WS_Jl_StgPanel.add(WS_Field, BorderLayout.SOUTH); dirV = new Vector(); if ( WS_JList.getModel().getSize() > 0 ) { WS_JList.setModel(WSlistModel = new DefaultListModel()); WS_Field.setText(""); } rtnLotVec(); String[] serStgArr = new String[ dirV.size() ]; dirV.copyInto( serStgArr ); for (int t = 0; t < serStgArr.length; t++) { //System.out.println("serStgArr[t]: " + serStgArr[t]); dirStgF = serStgArr[t].substring((serStgArr[t].lastIndexOf("\\")+1),serStgArr[t].length()); WSlistModel.addElement(dirStgF); } return WS_Jl_StgPanel; } public void rtnLotVec() { for (int t = 0; t < proi_dir.length; t++) { File dFile = new File(proi_dir[t]); if(dFile.exists()) { proi_path = proi_dir[t]; //System.out.println("Directory: " + proi_dir[t] + " exists"); } } //System.out.println("proi_path: " + proi_path); File aFile = new File(proi_path); if(!aFile.exists()) System.out.println("Directory: " + proi_path + " does not exist"); else if(!aFile.isDirectory()) System.out.println( proi_path + " is not a directory" ); else{ File[] theFiles = aFile.listFiles(); for(int x=0; xws_run.bat"); RunCmd("echo set HOMEDRIVE=D:>>ws_run.bat"); RunCmd("echo set HOMEPATH=\\%USERNAME%>>ws_run.bat"); RunCmd("echo set PRO_START_DIR=%HOMEDRIVE%%HOMEPATH%\\ptc_startup>>ws_run.bat"); RunCmd("echo pushd .>>ws_run.bat"); RunCmd("echo cd /d %PRO_START_DIR%>>ws_run.bat"); RunCmd("echo set PROI_LOG=%HOMEDRIVE%%HOMEPATH%\\ptc_startup\\proi_logs>>ws_run.bat"); RunCmd("echo set ILINK_CLIENT_LOADPOINT=%HOMEDRIVE%\\ptc_software\\proiclient>>ws_run.bat"); RunCmd("echo set PDM_LDB_PATH=%HOMEDRIVE%%HOMEPATH%>>ws_run.bat"); RunCmd("echo set PROE_LOADPOINT=not_installed>>ws_run.bat"); RunCmd("echo set PATH=%ILINK_CLIENT_LOADPOINT%\\bin;%PROE_LOADPOINT%\\bin;%PATH%>>ws_run.bat"); RunCmd("echo set PRO_STDS=J:\\pro_stand>>ws_run.bat"); RunCmd("echo set PRO_MASTER_LOADPOINT=J:\\ptc_software>>ws_run.bat"); RunCmd("echo set CM_LOCATION_LOCAL=%PDM_LDB_PATH%\\.proi\\.data\\user.data\\start>>ws_run.bat"); RunCmd("echo set CM_LOCATION_MASTER=%PRO_STDS%\\proi_cm_commands>>ws_run.bat"); RunCmd("echo set PROE_LAUNCH_MASTER=%PRO_STDS%\\proe_launch_commands>>ws_run.bat"); //RunCmd("echo cd .\\"+WS_Path+">>ws_run.bat"); RunCmd("echo "+proe_file_path+" -w"+WS_Path+">>ws_run.bat"); RunCmd("set>lj_prog_set_tst01.txt"); RunCmd("ws_run.bat"); } public void RunCmd ( String runProE ) { String s3 = null; try { Process p3 = Runtime.getRuntime().exec("cmd /C " + runProE ); BufferedReader stdInput3 = new BufferedReader(new InputStreamReader(p3.getInputStream())); BufferedReader stdError3 = new BufferedReader(new InputStreamReader(p3.getErrorStream())); while ((s3 = stdInput3.readLine()) != null) { System.out.println( s3 ); } } catch (IOException e8) { System.out.println("Exception Running ProE: " ); e8.printStackTrace(); System.exit(-1); } } public void CancelPressed() { System.exit(0); } JFrame container; JList WS_JList; JTextField WS_Field; JButton ExitBut, StartBut; JScrollPane WStextScroller; ListSelectionModel listSelectionModel; DefaultListModel WSlistModel; Vector dirV; String usrnm = System.getProperty("user.name"); String[] proi_dir = {"C:\\users\\"+usrnm+"\\.proi","D:\\users\\"+usrnm+"\\.proi","E:\\users\\"+usrnm+"\\.proi", "C:\\"+usrnm+"\\.proi","D:\\"+usrnm+"\\.proi","E:\\"+usrnm+"\\.proi", "D:\\Dev\\HTML\\datajett.com\\public_html\\Java\\proe_ws\\.proi"}; String[] proe_dir = {"d:\\ptc_software\\proe\\bin\\proe.exe","d:\\ptc_software\\proe\\bin\\proe.exe", "W:\\ptc\\ptc_wildfire_2\\bin\\proe.exe","D:\\ptc\\proeWildfire\\bin\\proe.exe"}; String WS_Snm, dirStgF, proi_path, outCmdStg1, outCmdStg2, outCmdStg3; }