import java.io.*; import java.beans.*; import java.net.URL; import java.text.*; 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 java.util.*; import java.util.List; import java.util.Vector; import java.util.ResourceBundle; import sun.net.ftp.FtpClient; public class Plt2Pdf_02 implements ListSelectionListener { JFrame container; JList PnumJList, LnumJList, SnumJList; JTextField PnumField, LnumField, SnumField, ProgField, ftp_Field, drwNum_Field; JButton ButQry, ButRQry, ButRef, ExitBut, ResBut, OpenBut, GetBut, RInBut, RStatBut, RQuBut; JScrollPane PtextScroller, LtextScroller, StextScroller; ListSelectionModel listSelectionModel; DefaultListModel PlistModel, LlistModel, SlistModel; String Fstg, Pnum, Lnum, Snum, query, ftp_stg, ftp_Fstg, OutFileNm, dirStg; String PnumSnm, LnumSnm, SnumSnm, outInPut, cdPath; String TmpFileNm, getDataNm, dataOutStg, DOSubNm, DataOutSubStg, delStg, SubStg; String[] fulText; String[] finText; int cntr, scntr, nctr, rcntr, h, i, j, k = 0; String hostArg = "//pview/Stored"; public static void main(String[] args) { if ( args.length > 0 ) { hostArg = args[0]; } new Plt2Pdf_02(); } public Plt2Pdf_02() { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }; container=new JFrame("PLT Query"); 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 jb_out = new JPanel(); jb_out.setLayout(new BorderLayout()); jb_out.add(buildJBallPanel(), BorderLayout.NORTH); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout ( new FlowLayout(FlowLayout.CENTER) ); ButRef = new JButton("Refresh"); ButRef.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fieldCheck(); }}); buttonPanel.add(ButRef); //JPanel qryRPanel = new JPanel(); ButRQry = new JButton("Query For Rejects"); ButRQry.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fileRead(); rejRead(); getDataNm = getDataNm(); SaveSelected( getDataNm ); RunCmdInt( getDataNm ); }}); buttonPanel.add(ButRQry); ResBut = new JButton("Reset All"); ResBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setResetAll(); }}); buttonPanel.add(ResBut); ExitBut = new JButton("EXIT"); ExitBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DelOut(); CancelPressed(); }}); buttonPanel.add(ExitBut); container.getContentPane().add(jb_out, BorderLayout.NORTH); container.getContentPane().add(buttonPanel, BorderLayout.SOUTH); container.pack(); container.setVisible(true); } public JPanel buildJBallPanel() { JPanel JBallGrid = new JPanel(); GridBagLayout gbc0 = new GridBagLayout(); JBallGrid.setLayout(gbc0); // Input Grid JPanel JBinPanel = new JPanel(); GridBagLayout gbc1 = new GridBagLayout(); JBinPanel.setLayout(gbc1); JBinPanel.setBorder( new TitledBorder("INPUT") ); // Input Drawing Number Panel drwNum_Panel = new JPanel(); JLabel drwNum_Label = new JLabel("Enter Drawing Name (No Ext.)"); drwNum_Field = new JTextField(14); drwNum_Panel.add(drwNum_Label); drwNum_Panel.add(drwNum_Field); // FTP Panel JPanel ftp_Panel = new JPanel(); JLabel ftp_Label = new JLabel (" FTP Location Selected : "); ftp_Field = new JTextField(18); ftp_Field.setEditable(false); ftp_Panel.add(ftp_Label); ftp_Panel.add(ftp_Field); JPanel jbchcPanel = new JPanel(); JLabel jbchcLabel = new JLabel ("Select FTP Server: "); final int NUM = 5; jb_item[] jb_array = new jb_item[ NUM ]; jb_array[0] = new jb_item(" JetBlade FTP Locations ", "" ); jb_array[1] = new jb_item(" JetBlade Beeper - HEISCO1 ", "heisco1.heico-dc.com" ); jb_array[2] = new jb_item(" JetBlade Chameleon - BLACMM1 ", "blacmm1.heico-dc.com" ); jb_array[3] = new jb_item(" JetBlade Office - MEATII ", "meatii.heico-dc.com" ); jb_array[4] = new jb_item(" DataJett.com - Test ", "www.datajett.com" ); final JComboBox jbchc = new JComboBox( jb_array ); jbchc.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent e ) { if( e.getStateChange() == ItemEvent.SELECTED ){ setResetAll(); ftp_Field.setText(""+((jb_item)(jbchc.getSelectedItem())).getStg() ); DirGetFeed(); } } } ); jbchcPanel.add(jbchcLabel); jbchcPanel.add(jbchc); JBinPanel.add(ftp_Panel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); JBinPanel.add(ftp_Panel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); JBinPanel.add(jbchcPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); // Part, Lot & Serial Number Panels JPanel JBtaPanel = new JPanel(); GridBagLayout gbc2 = new GridBagLayout(); JBtaPanel.setLayout(gbc2); JBtaPanel.setBorder( new TitledBorder("INPUT") ); // Part Number Panel (JLabel(2), JTextArea & JTextField) JPanel PnumJl_StgPanel = new JPanel(); PnumJl_StgPanel.setLayout(new BorderLayout()); JLabel PnumJl_StgLabel = new JLabel(" Part Number: "); PnumJl_StgPanel.add(PnumJl_StgLabel, BorderLayout.NORTH); PlistModel = new DefaultListModel(); PnumJList = new JList(PlistModel); PnumJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); PnumJList.addListSelectionListener(this); PtextScroller = new JScrollPane( PnumJList, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); PtextScroller.setPreferredSize(new Dimension(80, 160)); PnumJl_StgPanel.add(PtextScroller); PnumField = new JTextField(14); PnumField.setEditable(false); PnumJl_StgPanel.add(PnumField, BorderLayout.SOUTH); // Lot Number Panel (JLabel(2), JTextArea & JTextField) JPanel LnumJl_StgPanel = new JPanel(); LnumJl_StgPanel.setLayout(new BorderLayout()); JLabel LnumJl_StgLabel = new JLabel (" Lot Number: "); LnumJl_StgPanel.add(LnumJl_StgLabel, BorderLayout.NORTH); LlistModel = new DefaultListModel(); LnumJList = new JList(LlistModel); LnumJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); LnumJList.addListSelectionListener(this); LtextScroller = new JScrollPane( LnumJList, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); LtextScroller.setPreferredSize(new Dimension(80, 160)); LnumJl_StgPanel.add(LtextScroller); LnumField = new JTextField(14); LnumField.setEditable(false); LnumJl_StgPanel.add(LnumField, BorderLayout.SOUTH); // Serial Number Panel (JLabel(2), JTextArea & JTextField) JPanel SnumJl_StgPanel = new JPanel(); SnumJl_StgPanel.setLayout(new BorderLayout()); JLabel SnumJl_StgLabel = new JLabel ("Serial Number: "); SnumJl_StgPanel.add(SnumJl_StgLabel, BorderLayout.NORTH); SlistModel = new DefaultListModel(); SnumJList = new JList(SlistModel); SnumJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); SnumJList.addListSelectionListener(this); StextScroller = new JScrollPane( SnumJList, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); StextScroller.setPreferredSize(new Dimension(80, 160)); SnumJl_StgPanel.add(StextScroller); SnumField = new JTextField(10); SnumField.setEditable(false); SnumJl_StgPanel.add(SnumField, BorderLayout.SOUTH); JBtaPanel.add(PnumJl_StgPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); JBtaPanel.add(LnumJl_StgPanel, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); JBtaPanel.add(SnumJl_StgPanel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); // Status Grid JPanel JBoutPanel = new JPanel(); GridBagLayout gbc3 = new GridBagLayout(); JBoutPanel.setLayout(gbc3); JBoutPanel.setBorder( new TitledBorder("STATUS") ); JPanel Prog_StgPanel = new JPanel(); Prog_StgPanel.setLayout(new BorderLayout()); JLabel Prog_StgLabel = new JLabel ("Status Results:"); Prog_StgPanel.add(Prog_StgLabel, BorderLayout.NORTH); ProgField = new JTextField(40); ProgField.setEditable(false); Prog_StgPanel.add(ProgField, BorderLayout.SOUTH); JBoutPanel.add(Prog_StgPanel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); // All Panel Grid JBallGrid.add(JBinPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); JBallGrid.add(JBtaPanel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); JBallGrid.add(JBoutPanel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 3, 3, 3), 5, 0)); return JBallGrid; } public void fileRead() { Fstg = getftp_Fstg(); Pnum = getPnum(); Lnum = getLnum(); Snum = getSnum(); try { //String uNm = "transfer";String pWd = "transfer"; //String jbStg = "/JB_FILES/";String path1 = "/u/mm4"; String uNm = "datajett";String pWd = "rbjllj69"; String jbStg = "/JB_FILES/";String path1 = "/public_html/HC"; int fPos = Fstg.indexOf("heisco1"); if ( fPos >= 0 ) { path1 = "../../"; } String ftpAdd = "ftp://" + uNm + ":" + pWd + "@" + Fstg + path1 + jbStg; outInPut = ftpAdd + Pnum + "/" + Lnum + "/OUTPUT.TXT"; String surl = outInPut; URL url = new URL(surl); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); Vector lines = new Vector(); String aLine = reader.readLine(); while( aLine != null ) { lines.addElement( aLine ); aLine = reader.readLine(); } String[] fulText = new String[ lines.size() ]; lines.copyInto( fulText ); reader.close(); } catch (IOException exc2) { ProgField.setText("No OUTPUT.TXT Found."); } } public void SnumQuery( String sName, String uName, String pWord, String cdPath ) { try { outInPut = "ftp://" + uName + ":" + pWord + "@" + sName + cdPath + "/OUTPUT.TXT"; String surl = outInPut; URL url = new URL(surl); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); Vector lines = new Vector(); String aLine = reader.readLine(); while( aLine != null ) { lines.addElement( aLine ); aLine = reader.readLine(); } fulText = new String[ lines.size() ]; lines.copyInto( fulText ); reader.close(); } catch (IOException exc2) { ProgField.setText("No OUTPUT.TXT Found."); } if (fulText.length==0) { ProgField.setText("NO DATA"); } else { QueryRead( fulText ); } } public void QueryRead( String[] fulText ) { Pnum = getPnum();Snum = getSnum(); String tstStg = "";String dirStg1 = "";String dirStg2 = ""; String dirStg1p4 = "";String dirStg2p4 = "";String finStg = ""; Vector serV = new Vector(); int rcntr=0;int tstPos = 0;int dirPos = 0;int lcntr = 0; for (i = 0; i < fulText.length; i++) { int sec2Pos = fulText[i].indexOf("SECT"); int prt2Pos = fulText[i].indexOf(Pnum); if ( sec2Pos > 0 && prt2Pos == 0 ) { dirStg1 = fulText[i].substring(sec2Pos-1,fulText[i].length()); // Found SECT int ptPos = dirStg1.lastIndexOf("."); int spPos = dirStg1.lastIndexOf(" "); dirStg2 = dirStg1.substring(ptPos+1,spPos); // 127 serV.addElement( dirStg2 ); } } String[] serStgArr = new String[ serV.size() ]; serV.copyInto( serStgArr ); String[] serStgArr1 = sortStrings( serStgArr ); String[] serStgArrS = reverseStrings( serStgArr1 ); for (int s = 0; s < serStgArrS.length; s++) { int ftlg = serStgArrS.length; int spl = s+1; if ( spl < serStgArrS.length ) { if(serStgArrS[s].compareToIgnoreCase(serStgArrS[spl]) == 0) { lcntr++; } else { lcntr++; finStg = serStgArrS[s] + " - " + lcntr; if (!alreadyInSList(finStg)) { SlistModel.addElement(finStg); } lcntr=0; finStg = ""; } } else { lcntr++; finStg = serStgArrS[s] + " - " + lcntr; if (!alreadyInSList(finStg)) { SlistModel.addElement(finStg); } lcntr=0; finStg = ""; } } } public void DirGetFeed() { Fstg = getftp_Fstg(); Pnum = getPnum(); Lnum = getLnum(); // D:/Dev/HTML/datajett.com/public_html/Java/plt2pdf // //pview/Stored //String uNm = "transfer";String pWd = "transfer"; //String jbStg = "/JB_FILES/";String path1 = "/u/mm4"; String uNm = "datajett";String pWd = "rbjllj69"; String jbStg = "/JB_FILES/";String path1 = "/public_html/HC"; String cdP = path1 + jbStg + Pnum + "/" + Lnum; if ( Pnum.length() > 0 && Lnum.length() > 0 ) { SnumQuery( Fstg, uNm, pWd, cdP ); } else { DirGet( Fstg, uNm, pWd, cdP ); } } public void fieldCheck() { Fstg = getftp_Fstg();Pnum = getPnum();Lnum = getLnum();Snum = getSnum(); if (Fstg.length()==0 || Pnum.length()==0 || Lnum.length()==0) { ProgField.setText("Insufficient Data. Please Select FTP Location, Part, Lot & Serial Numbers."); } else { DirGetFeed(); } if (Fstg.length()>0 && Pnum.length()>0 && Lnum.length()>0 ) { if ( SnumJList.getModel().getSize() > 0 ) { SnumJList.setModel(SlistModel = new DefaultListModel()); SnumField.setText(""); } DirGetFeed(); } } public void DirGet( String sName, String uName, String pWord, String cdPath ) { try { FtpWr ftpt = new FtpWr(); String[] fulTextR = null; ftpt.openServer(sName); if (ftpt.serverIsOpen()) { try { ftpt.login(uName, pWord); ftpt.cdDir(cdPath); fulTextR=ftpt.listRawStg(); for (int i = 0; i < fulTextR.length; i++) { int spPos = fulTextR[i].lastIndexOf(" "); dirStg = fulTextR[i].substring(spPos+1,fulTextR[i].length()); int dotPos = dirStg.indexOf("."); int dPos = fulTextR[i].indexOf("d"); int revPos = dirStg.indexOf("rev"); if ( dotPos < 0 && dPos == 0 && revPos < 0 ) { if ( Pnum.length() > 0 ) { if (!alreadyInLList(dirStg)) { LlistModel.addElement(dirStg); } } else { if (!alreadyInPList(dirStg)) { PlistModel.addElement(dirStg); } } } } } catch (Exception ftpe) { ftpe.printStackTrace(); } finally { ftpt.closeServer(); } } else { System.out.println("Unable to connect to" + sName); } } catch(Exception e) { ProgField.setText("Unable to connect to: " + sName + ", Please select another Location."); } } public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) { if (PnumJList.getSelectedIndex() != -1) { PnumSnm = PnumJList.getSelectedValue().toString(); ProgField.setText(""); PnumField.setText(""); PnumField.setText(PnumSnm); PnumJList.clearSelection(); if ( LnumJList.getModel().getSize() > 0 ) { LnumJList.setModel(LlistModel = new DefaultListModel()); LnumField.setText(""); } if ( SnumJList.getModel().getSize() > 0 ) { SnumJList.setModel(SlistModel = new DefaultListModel()); SnumField.setText(""); } DirGetFeed(); } if (LnumJList.getSelectedIndex() != -1) { LnumSnm = LnumJList.getSelectedValue().toString(); ProgField.setText(""); LnumField.setText(""); LnumField.setText(LnumSnm); LnumJList.clearSelection(); if ( SnumJList.getModel().getSize() > 0 ) { SnumJList.setModel(SlistModel = new DefaultListModel()); SnumField.setText(""); } DirGetFeed(); } if (SnumJList.getSelectedIndex() != -1) { String SnumSnm1 = SnumJList.getSelectedValue().toString(); int dshPos = SnumSnm1.lastIndexOf(" - "); SnumSnm = SnumSnm1.substring(0,dshPos); SnumField.setText(""); ProgField.setText(""); SnumField.setText(SnumSnm); SnumJList.clearSelection(); stgRead(); getDataNm = getDataNm(); SaveSelected( getDataNm ); RunCmdInt( getDataNm ); } } } public void stgRead() { Pnum = getPnum(); Snum = getSnum(); int tcntr = cntr; int scntr = 0; finText = new String[ fulText.length ]; for (h = 0; h < finText.length; h++) {finText[h] = "";} for (i = 0; i < fulText.length; i++) { int serPos = fulText[i].indexOf("." + Snum); int prtPos = fulText[i].indexOf(Pnum); if ( serPos > 0 && prtPos == 0 ) { finText[nctr] = fulText[i]; scntr++; finText[nctr+1] = fulText[i+1]; finText[nctr+2] = fulText[i+2]; finText[nctr+3] = fulText[i+3]; nctr=nctr+4; } } ProgField.setText(scntr + " Sections with SERIAL NUMBER: " + Snum + " were Found."); } public void rejRead() { int tcntr = cntr; int scntr = 0; finText = new String[ fulText.length ]; for (h = 0; h < finText.length; h++) {finText[h] = "";} for (i = 0; i < fulText.length; i++) { int serPos = fulText[i].indexOf("REJECT"); if ( serPos >= 0 ) { finText[nctr] = fulText[i]; scntr++; finText[nctr+1] = fulText[i+1]; finText[nctr+2] = fulText[i+2]; finText[nctr+3] = fulText[i+3]; nctr=nctr+4; } } ProgField.setText(scntr + " Sections with REJECTS were Found For: " + Pnum + " & " + Lnum + "."); } public void RunCmdInt ( String getDataNm ) { String s = null; try { String wordpad = ("\"C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe\""); Process p = Runtime.getRuntime().exec("cmd /C " + wordpad + " " + getDataNm ); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); while ((s = stdInput.readLine()) != null) { System.out.println( s ); } } catch (IOException e) { System.out.println("Exception: "); e.printStackTrace(); System.exit(-1); } } public void SaveSelected( String getDataNm ) { try { PrintStream expfl = new PrintStream(new FileOutputStream(getDataNm)); for (j = 0; j < nctr; j++) { if ( finText[j] != "" ) { expfl.println( finText[j] ); } } expfl.flush(); expfl.close(); } catch(java.io.IOException IOEx) { System.out.println("Cannot create " + getDataNm + " file."); } } public String[] sortStrings( String[] strings ) { for ( int i = 0; i < strings.length - 1; ++i ) { for ( int j = i + 1; j < strings.length; ++j ) { if ( strings[i].compareTo( strings[j] ) > 0 ) { String t = strings[i]; strings[i] = strings[j]; strings[j] = t; } } } return strings; } public String[] reverseStrings( String[] strings ) { String temp; int left = 0; int right = strings.length - 1; while (left < right) { temp = strings[left]; strings[left] = strings[right]; strings[right] = temp; right--; left++; } return strings; } protected boolean alreadyInPList(String name) { return PlistModel.contains(name); } protected boolean alreadyInLList(String name) { return LlistModel.contains(name); } protected boolean alreadyInSList(String name) { return SlistModel.contains(name); } public void DelOut() { String s2 = null; try { String delStg = ("\"del *_out.txt\""); Process p2 = Runtime.getRuntime().exec("cmd /C " + delStg ); BufferedReader stdInput2 = new BufferedReader(new InputStreamReader(p2.getInputStream())); BufferedReader stdError2 = new BufferedReader(new InputStreamReader(p2.getErrorStream())); while ((s2 = stdInput2.readLine()) != null) { System.out.println( s2 ); } } catch (IOException e9) { System.out.println("Exception: "); e9.printStackTrace(); System.exit(-1); } } public String getDataNm() { Pnum = getPnum(); Lnum = getLnum(); OutFileNm = Pnum + "." + Lnum + "_out.txt"; return OutFileNm; } public void CancelPressed() { System.exit(0); } public String getPnum() { Pnum = PnumField.getText(); return Pnum; } public String getLnum(){ Lnum = LnumField.getText(); return Lnum; } public String getSnum() { Snum = SnumField.getText(); return Snum; } public String getftp_Fstg(){ ftp_Fstg = ftp_Field.getText(); return ftp_Fstg; } public void setResetAll() { PnumField.setText(""); LnumField.setText(""); SnumField.setText(""); ftp_Field.setText(""); ProgField.setText(""); if ( PnumJList.getModel().getSize() > 0 ) { PnumJList.setModel(PlistModel = new DefaultListModel()); } if ( LnumJList.getModel().getSize() > 0 ) { LnumJList.setModel(LlistModel = new DefaultListModel()); } if ( SnumJList.getModel().getSize() > 0 ) { SnumJList.setModel(SlistModel = new DefaultListModel()); } } } class jb_item { private String jb_name; private String jb_stg; public jb_item() { jb_name = ""; jb_stg = ""; } jb_item( String jb_name_, String jb_stg_ ) { jb_name = jb_name_; jb_stg = jb_stg_; } public String getName() { return jb_name; } public String getStg() { return jb_stg; } public String toString() { return jb_name; } } class FtpWr extends FtpClient { public boolean cdDir (String dirPath) throws IOException { issueCommand("CWD " + dirPath); return isValidResponse(); } public String[] listRawStg() throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(list())); Vector lines = new Vector(); String aLine = reader.readLine(); while( aLine != null ) { lines.addElement( aLine ); aLine = reader.readLine(); } String[] lineArray = new String[ lines.size() ]; lines.copyInto( lineArray ); return lineArray; } public boolean isValidResponse() { try { int respCode = Integer.parseInt(getResponseString().substring(0, 3)); return (respCode >= 200 && respCode < 300); } catch (Exception e) { return false; } } }