/* * FTPApp.java * * Created on Jan 2, 2011, 9:28:14 PM * * @author pquiring */ import javax.swing.*; import java.awt.*; import javaforce.*; public class FTPApp extends javax.swing.JFrame { public static String version = "0.7"; /** * Creates new form JFftp */ public FTPApp() { initComponents(); setTitle("jfFTP/" + version); JF.centerWindow(this); JFLog.init(JF.getUserPath() + "/.jfftp.log", true); Site.loadIcons(this.getClass()); JFImage icon = new JFImage(); icon.loadPNG(this.getClass().getClassLoader().getResourceAsStream("jfftp.png")); setIconImage(icon.getImage()); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { tabs = new javax.swing.JTabbedPane(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JPopupMenu.Separator(); jMenuItem2 = new javax.swing.JMenuItem(); jMenuItem3 = new javax.swing.JMenuItem(); jSeparator3 = new javax.swing.JPopupMenu.Separator(); jMenuItem6 = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); jMenuItem5 = new javax.swing.JMenuItem(); jMenu2 = new javax.swing.JMenu(); jMenuItem4 = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("jfftp"); jMenu1.setMnemonic('F'); jMenu1.setText("File"); jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem1.setMnemonic('S'); jMenuItem1.setText("Site Manager"); jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem1ActionPerformed(evt); } }); jMenu1.add(jMenuItem1); jMenu1.add(jSeparator1); jMenuItem2.setMnemonic('I'); jMenuItem2.setText("Import Sites..."); jMenuItem2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem2ActionPerformed(evt); } }); jMenu1.add(jMenuItem2); jMenuItem3.setMnemonic('E'); jMenuItem3.setText("Export Sites..."); jMenuItem3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem3ActionPerformed(evt); } }); jMenu1.add(jMenuItem3); jMenu1.add(jSeparator3); jMenuItem6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem6.setMnemonic('C'); jMenuItem6.setText("Close Site"); jMenuItem6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem6ActionPerformed(evt); } }); jMenu1.add(jMenuItem6); jMenu1.add(jSeparator2); jMenuItem5.setMnemonic('X'); jMenuItem5.setText("Exit"); jMenuItem5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem5ActionPerformed(evt); } }); jMenu1.add(jMenuItem5); jMenuBar1.add(jMenu1); jMenu2.setMnemonic('H'); jMenu2.setText("Help"); jMenuItem4.setMnemonic('A'); jMenuItem4.setText("About"); jMenuItem4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem4ActionPerformed(evt); } }); jMenu2.add(jMenuItem4); jMenuBar1.add(jMenu2); setJMenuBar(jMenuBar1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 756, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 589, Short.MAX_VALUE) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed SiteDetails sdArray[] = SiteMgr.showSiteMgr(this); if (sdArray == null) { return; } for (SiteDetails sd : sdArray) { connect(sd); } }//GEN-LAST:event_jMenuItem1ActionPerformed private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed Settings.importSettings(); }//GEN-LAST:event_jMenuItem2ActionPerformed private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed Settings.exportSettings(); }//GEN-LAST:event_jMenuItem3ActionPerformed private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed JF.showMessage("About", "jfftp/" + version + "\nFTP/SMB Client\nWebsite : http://jfftp.sourceforge.net\nBy : Peter Quiring(pquiring@gmail.com)"); }//GEN-LAST:event_jMenuItem4ActionPerformed private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed exit(); }//GEN-LAST:event_jMenuItem5ActionPerformed private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed closeSite(); }//GEN-LAST:event_jMenuItem6ActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FTPApp().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu2; private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JMenuItem jMenuItem2; private javax.swing.JMenuItem jMenuItem3; private javax.swing.JMenuItem jMenuItem4; private javax.swing.JMenuItem jMenuItem5; private javax.swing.JMenuItem jMenuItem6; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JPopupMenu.Separator jSeparator2; private javax.swing.JPopupMenu.Separator jSeparator3; private javax.swing.JTabbedPane tabs; // End of variables declaration//GEN-END:variables public void connect(SiteDetails sd) { Site site = null; if (sd.protocol.equals("ftp")) { site = new SiteFTP(); } if (sd.protocol.equals("ftps")) { site = new SiteFTPS(); } if (sd.protocol.equals("sftp")) { site = new SiteSFTP(); } if (sd.protocol.equals("smb")) { site = new SiteSMB(); } if (site == null) { return; } site.init(sd.localDir); JScrollPane pane = new JScrollPane(site); pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); JPanel panel = new JPanel(new GridLayout()); panel.putClientProperty("site", site); site.putClientProperty("panel", panel); site.putClientProperty("pane", pane); site.putClientProperty("tabs", tabs); panel.add(pane); tabs.addTab(sd.name, panel); tabs.setSelectedComponent(panel); new Thread() { private Site site; private SiteDetails sd; public void run() { site.connect(sd); } public Thread init(Site site, SiteDetails sd) { this.site = site; this.sd = sd; return this; } }.init(site, sd).start(); site.requestFocus(); } public void exit() { Settings.saveSettings(); System.exit(0); } public void closeSite() { try { JPanel panel = (JPanel) tabs.getSelectedComponent(); if (panel == null) { return; } Site site = (Site) panel.getClientProperty("site"); if (site == null) { return; } site.disconnect(); tabs.remove(panel); } catch (Exception e) { JFLog.log(e); } } }